Skip to content

Commit e5fe516

Browse files
AI Translate 56-security to Simplified-Chinese (#2822)
* [INIT] Start translation to Simplified-Chinese * 🌐 Translate masking-policy.md to Simplified-Chinese --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 053b485 commit e5fe516

File tree

2 files changed

+58
-49
lines changed

2 files changed

+58
-49
lines changed

.translation-init

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Translation initialization: 2025-09-26T11:18:50.025523
1+
Translation initialization: 2025-09-28T10:54:57.348199
Lines changed: 57 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,89 @@
11
---
2-
title: 掩码策略
2+
title: 动态脱敏策略(Masking Policy)
33
---
44
import IndexOverviewList from '@site/src/components/IndexOverviewList';
55
import EEFeature from '@site/src/components/EEFeature';
66

77
<EEFeature featureName='MASKING POLICY'/>
88

9-
掩码策略指的是控制敏感数据展示或访问的规则和设置,它在保护机密性的同时,允许授权用户与数据交互。Databend 允许你定义掩码策略来展示表中敏感的列,从而保护机密数据,同时允许授权角色访问数据的特定部分
9+
动态脱敏策略(Masking Policy)在查询执行期间动态转换列值,从而保护敏感数据。它实现基于角色的机密信息访问:授权用户看到真实数据,其他用户则看到脱敏后的值
1010

11-
例如,假设你想仅向管理者展示表中的电子邮件地址:
11+
## 工作原理
1212

13+
动态脱敏策略(Masking Policy)根据当前用户的角色,对列数据应用转换表达式:
14+
15+
**对于 managers:**
1316
```sql
1417
id | email |
1518
---|-----------------|
1619
2 | eric@example.com|
1720
1 | sue@example.com |
1821
```
1922

20-
当非管理者用户查询该表时,电子邮件地址将显示为:
21-
23+
**对于其他用户:**
2224
```sql
23-
id|email |
24-
--+---------+
25-
2|*********|
26-
1|*********|
25+
id | email |
26+
---|----------|
27+
2 | *********|
28+
1 | *********|
2729
```
2830

29-
### 实施掩码策略
31+
## 关键特性
3032

31-
在创建掩码策略之前,请确保已正确定义或规划用户角色及其相应的访问权限,因为策略的实施依赖于这些角色来确保安全有效的数据掩码。要管理 Databend 用户和角色,请参阅 [User & Role](/sql/sql-commands/ddl/user/)
33+
- **查询时脱敏**:策略仅在 SELECT 操作期间转换数据
34+
- **基于角色**:访问规则依赖当前用户的角色,通过 `current_role()` 判断
35+
- **列级粒度**:作用于特定表列
36+
- **可复用**:一个策略可保护不同表中的多个列
37+
- **非侵入式**:原始数据在存储中保持不变
3238

33-
掩码策略应用于表的列。要为特定列实施掩码策略,必须首先创建掩码策略,然后使用 [ALTER TABLE COLUMN](/sql/sql-commands/ddl/table/alter-table-column) 命令将该策略与目标列相关联。通过建立这种关联,掩码策略将根据数据隐私至关重要的确切上下文进行定制。重要的是要注意,单个掩码策略可以与多个列相关联,只要它们符合相同的策略标准。有关用于管理 Databend 中掩码策略的命令,请参阅 [Masking Policy](/sql/sql-commands/ddl/mask-policy/)
39+
## 读操作与写操作
3440

35-
### 使用示例
41+
**重要**:动态脱敏策略(Masking Policy)**仅作用于读操作**(SELECT 查询)。写操作(INSERT、UPDATE、DELETE)始终处理原始、未脱敏的数据,从而确保:
3642

37-
此示例说明了设置掩码策略以基于用户角色选择性地显示或掩码敏感数据的过程。
43+
- 查询结果按用户权限受到保护
44+
- 应用程序可存储并修改真实数据值
45+
- 底层存储的数据完整性得以保持
3846

39-
```sql
40-
-- 创建表并插入示例数据
41-
CREATE TABLE user_info (
42-
id INT,
43-
email STRING
44-
);
47+
## 快速入门
4548

46-
INSERT INTO user_info (id, email) VALUES (1, '[email protected]');
47-
INSERT INTO user_info (id, email) VALUES (2, '[email protected]');
49+
### 1. 创建动态脱敏策略(Masking Policy)
4850

49-
-- 创建一个角色
50-
CREATE ROLE 'MANAGERS';
51-
GRANT ALL ON *.* TO ROLE 'MANAGERS';
51+
```sql
52+
CREATE MASKING POLICY email_mask
53+
AS (val STRING)
54+
RETURNS STRING ->
55+
CASE
56+
WHEN current_role() IN ('MANAGERS') THEN val
57+
ELSE '*********'
58+
END;
59+
```
5260

53-
-- 创建一个用户并将角色授予该用户
54-
CREATE USER manager_user IDENTIFIED BY 'databend';
55-
GRANT ROLE 'MANAGERS' TO 'manager_user';
61+
### 2. 应用到表列
5662

57-
-- 创建一个掩码策略
58-
CREATE MASKING POLICY email_mask
59-
AS
60-
(val nullable(string))
61-
RETURNS nullable(string) ->
62-
CASE
63-
WHEN current_role() IN ('MANAGERS') THEN
64-
val
65-
ELSE
66-
'*********'
67-
END
68-
COMMENT = 'hide_email';
69-
70-
-- 将掩码策略与 'email' 列相关联
63+
```sql
7164
ALTER TABLE user_info MODIFY COLUMN email SET MASKING POLICY email_mask;
65+
```
66+
67+
### 3. 测试策略
68+
69+
```sql
70+
-- 创建测试数据
71+
CREATE TABLE user_info (id INT, email STRING NOT NULL);
72+
INSERT INTO user_info VALUES (1, '[email protected]');
7273

73-
-- 使用 Root 用户查询
74+
-- 以不同角色查询,观察脱敏效果
7475
SELECT * FROM user_info;
76+
```
77+
78+
## 前提条件
79+
80+
- 创建策略前,先定义用户角色及其访问权限
81+
- 确保用户已分配适当角色
82+
- 角色管理请参考 [User & Role](/sql/sql-commands/ddl/user/)
83+
84+
## 策略管理
7585

76-
id|email |
77-
--+---------+
78-
2|*********|
79-
1|*********|
80-
```
86+
有关创建、修改和管理动态脱敏策略(Masking Policy)的详细命令,请查阅:
87+
- [CREATE MASKING POLICY](/sql/sql-commands/ddl/mask-policy/create-mask-policy)
88+
- [ALTER TABLE COLUMN](/sql/sql-commands/ddl/table/alter-table-column)
89+
- [Masking Policy Commands](/sql/sql-commands/ddl/mask-policy/)

0 commit comments

Comments
 (0)