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

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

  LBAC 由安全管理员 通过创建安全策略来设置。每个表只能由一个安全策略来控制,但是系统中可以有任意数量的安全策略。设置 LBAC 需要几个步骤。必须做的第一件事情是,决定对于您的数据需要什么类型的访问控制。

  我们做出以下假设。在您的组织中有三类人。

名称 在组织中的角色
Jane 人力资源执行官
Joe D11 和 E21 部门的经理
Frank 团队主管 - A00 部门

  现在,在组织的数据库中有一个定义职员信息的表。这个表类似于 SAMPLE 数据库中的 EMP 表。它包含关于职员和他们所属的部门的数据。它现在的定义如下:

  db2 => describe select * from emp

  SQLDA Information

  sqldaid : SQLDA sqldabc: 896 sqln: 20 sqld: 14

  Column Information

  sqltype sqllen sqlname.data sqlname.length

  -------------------- ------ ------------------------------ --------------

  452 CHARACTER 6 EMPNO 5

  448 VARCHAR 12 FIRSTNME 8

  453 CHARACTER 1 MIDINIT 7

  448 VARCHAR 15 LASTNAME 8

  453 CHARACTER 3 WORKDEPT 8

  453 CHARACTER 4 PHONENO 7

  385 DATE 10 HIREDATE 8

  453 CHARACTER 8 JOB 3

  500 SMALLINT 2 EDLEVEL 7

  453 CHARACTER 1 SEX 3

  385 DATE 10 BIRTHDATE 9

  485 DECIMAL 9, 2 SALARY 6

  485 DECIMAL 9, 2 BONUS 5

  485 DECIMAL 9, 2 COMM 4

  组织会定期对规则进行审计。审计指出,职员不应该能够访问机密的数据。规则规定,执行官对所有职员记录有完全的读/写访问权,经理对自己部门的职员记录有读/写访问权,而团队主管只能读取部门中他们领导的职员的记录。

  我们要设置 LBAC 安全策略来实现这些规则。

  1、定义安全策略和标签,并将安全标签授予用户

  2、在 EMP 表中添加安全标签列并将安全策略连接到它

  定义安全策略和标签

  为了定义安全策略和标签,需要 SECADM 权限。

  步骤 1a. 创建安全标签组件

  首先,需要决定对于这个策略最合适的安全组件类型。在这个示例中,最合适的策略类型是 “TREE”。Tree 策略意味着可以定义一组标签,让子组件拥有它们的父组件的权限的子集。在这个示例中,创建一个名为 “J_DEPT” 的安全组件。

  CREATE SECURITY LABEL COMPONENT J_DEPT

  TREE ('HR_EXECUTIVE' ROOT,

  'MAN_D11_E21' UNDER 'HR_EXECUTIVE'

  'A00' UNDER 'HR_EXECUTIVE',

  'B01' UNDER 'HR_EXECUTIVE',

  'C01' UNDER 'HR_EXECUTIVE',

  'D11' UNDER 'MAN_D11_E21',

  'D21' UNDER 'HR_EXECUTIVE',

  'E01' UNDER 'HR_EXECUTIVE',

  'E11' UNDER 'HR_EXECUTIVE',

  'E21' UNDER 'MAN_D11_E21'

  )

  上面的布局说明根是 HR_EXECUTIVE,这个执行官领导的所有部门都是它的子组件。

  步骤 1b. 定义安全策略

  在上面的示例中,设置 LBAC 所需的下一个步骤是定义与上面的安全标签组件相关联的策略。一个安全策略可以使用多个组件。

  CREATE SECURITY POLICY J_DEPT_POLICY

  COMPONENTS J_DEPT

  WITH DB2LBACRULES

  RESTRICT NOT AUTHORIZED WRITE SECURITY LABEL

(责任编辑:IT教学网)

更多

推荐数据库文章