DB2 数据库特权授予的方法和技巧(5)

http://www.itjxue.com  2015-08-21 22:26  来源:未知  点击次数: 

  步骤 1c. 创建安全标签

  设置安全策略的第三步是创建安全标签。在这里将指定每个用户具有的不同角色。因为这个示例非常简单,只有三个标签,Executive、Manager 和 Team Lead。

  CREATE SECURITY LABEL J_DEPT_POLICY.EXECUTIVE

  COMPONENT J_DEPT 'HR_EXECUTIVE'

  CREATE SECURITY LABEL J_DEPT_POLICY.MANAGE_D11_E21

  COMPONENT J_DEPT 'MAN_D11_E21'

  CREATE SECURITY LABEL J_DEPT_POLICY.A00

  COMPONENT J_DEPT 'A00'

  CREATE SECURITY LABEL J_DEPT_POLICY.B01

  COMPONENT J_DEPT 'B01'

  CREATE SECURITY LABEL J_DEPT_POLICY.C01

  COMPONENT J_DEPT 'C01'

  CREATE SECURITY LABEL J_DEPT_POLICY.D11

  COMPONENT J_DEPT 'D11'

  CREATE SECURITY LABEL J_DEPT_POLICY.D21

  COMPONENT J_DEPT 'D21'

  CREATE SECURITY LABEL J_DEPT_POLICY.E01

  COMPONENT J_DEPT 'E01'

  CREATE SECURITY LABEL J_DEPT_POLICY.E11

  COMPONENT J_DEPT 'E11'

  CREATE SECURITY LABEL J_DEPT_POLICY.E21

  COMPONENT J_DEPT 'E21'

  在下一步中,将定义与这些标签相关联的实际权限。

  步骤 1d. 根据标签授予权限

  下面的步骤描述对表数据授予权限的过程。权限可以是 ALL ACCESS、WRITE ACCESS 或 READ ACCESS。如果这些权限都没有授予一个用户,那么这个用户就不能访问任何表数据。请记住,执行官有完全的访问权,经理对自己的部门有完全的访问权,而团队主管对他们领导的部门成员有读访问权。

  db2 grant security label J_DEPT_POLICY.A00 to user Frank for read access

  db2 grant security label J_DEPT_POLICY.MANAGE_D11_E21 to user Joe for all access

  db2 grant security label J_DEPT_POLICY.EXECUTIVE to user Jane for all access

  在用户上设置以上标签,就会根据步骤 1a 中的树定义来分配权限。因为用户 Joe 被标为 MANAGE_D11_E21 并获得所有权限,他将能够读写那些安全标记为 J_DEPT_POLICY.D11 或 J_DEPT_POLICY.E21 的行(因为它们是他的子组件)。

  步骤 2. 修改 EMP 表

  在修改 EMP 表时,必须创建一个额外的列来存储安全标签。这个列的类型是 “DB2SECURITYLABEL”。您可以修改 SAMPLE 数据库中现有的 EMP 表。为此,必须使用在这个策略中被授予根级特权的用户,在这个示例中就是用户 Jane。还必须先从 SAMPLE 数据库删除 MQT 表 ADEFUSR。

  CONNECT TO SAMPLE

  Database Connection Information

  Database server = DB2/NT 9.1.0

  SQL authorization ID = GMILNE

  Local database alias = SAMPLE

  DROP TABLE ADEFUSR

  CONNECT RESET

  CONNECT TO SAMPLE USER Jane USING password

  ALTER TABLE EMP

  ADD COLUMN DEPT_TAG DB2SECURITYLABEL

  ADD SECURITY POLICY J_DEPT_POLICY

(责任编辑:IT教学网)

更多

推荐数据库文章