# 如何配置数据角色

数据角色,也叫字段角色,是对数据概念的业务归类,比如“日期"、"手机号码”,“身份证号”。

用户可以将自定义角色添加到自定义字段角色表 (opens new window)(/sysdata/data/tables/dw/DW_FIELD_CUSTOM_ROLES.tbl),表中定义的属性是系统内置属性,设置之后会在系统中自动发挥作用,包括:

  1. 数据脱敏,用户设置了该角色,且包含这个属性,所有明细查询都会自动返回数据脱敏后的结果。
  2. 是否合法,业务模块在过滤时可以作为过滤条件进行过滤。
  3. 数据校验信息,数据校验不合法时可以在界面上提示用户。
  4. 是否匹配,搜索时可根据该属性判断是否要搜索这个字段。
  5. 是否为空。

除此之外,用户可以定义个性化的属性在角色的关联维表中,这些属性可以在表达式和过滤条件中使用,使用方法和维项表达式相同。

元数据格式即维表的json结构,需要添加主键作为映射字段名,同时添加自定义计算字段,这些计算字段可以作为属性在模型中使用,可以是有实体的维表,也可以是个虚拟维表。

下面以一个身份证号的字段角色作为例子:

{
	"version": "4.0.0",
	"properties": {
		"modelDataType": "App",
		"primaryKeys": ["ID"]
	},
	"dimensions": [{
		"name": "ID", // 主键必需,其他属性可以用这个主键进行表达式判断
		"dataType": "C",
		"length": 20,
		"decimal": 0,
		"isDimension": true,
		"isPrimaryKey": true,
		"originalField": "ID"
	}, {
		"name": "数据脱敏", // 设置了这个属性,查询明细数据时会自动返回脱敏后的结果
		"dataType": "C",
		"length": 50,
		"decimal": 0,
		"isDimension": true,
		"originalField": "MASK",
		"exp": "CONCAT(LEFT([ID], 3), '****', RIGHT([ID], 4))"
	}, {
		"name": "是否合法",
		"dataType": "I",
		"length": 2,
		"decimal": 0,
		"isDimension": true,
		"originalField": "ISVALID",
		"exp": "IF(LEN([ID])=18 or LEN([ID])=15, 1, 0)" // 表达式可以自定义修改
	}, {
		"name": "是否为空",
		"dataType": "I",
		"length": 2,
		"decimal": 0,
		"isDimension": true,
		"originalField": "ISNULL",
		"exp": "[ID] is null"
	}, {
		"name": "数据校验信息",
		"dataType": "C",
		"length": 64,
		"decimal": 0,
		"isDimension": true,
		"originalField": "AUDITMSG",
		"exp": "'身份证号不合法'"
	}],
	"measures": []
}
是否有帮助?
0条评论
评论