实现行级粒度多级安全
许多应用程序需要在关系数据库中实现行级安全,以便将访问权限限制在特定的行集内。 这种安全控制通常是强制性的,以防止用户绕过行级安全机制。 对 z/OS® 和 RACF® 使用强制控制,可确保整个系统的一致性。
关于本任务
无论是否在对象级别上实施多级安全,您都可以以行级别粒度实施多级安全。 如果在对象级别实施多层级安全 ,则必须在 RACF 中为所有 Db2 对象定义安全标签,并安装外部安全访问控制授权退出程序。 如果您不使用访问控制授权退出程序或 RACF 访问控制,则可以使用 Db2 本机授权控制。
无论是否在对象级别上实施多级安全,您都可以以行级别粒度实施多级安全。
建议 :在对象级别使用多级安全,在行级别使用多级安全。 使用具有多层安全性的 RACF ,可在运行时进行独立检查,并始终检查用户对数据的授权。
Db2 通过将用户的安全标签与被访问行的安全标签进行比较,以行级粒度执行多级安全保护。 由于安全标签可能相同也可能不同,因此当两个安全标签不同时, Db2 使用RACROUTE REQUEST=DIRAUTH宏进行比较。 对于读取操作,例如SELECT, Db2 使用ACCESS=READ。 对于更新操作, Db2 使用ACCESS=READWRITE。
具有行级粒度的多级安全性的写权限具有以下属性:
- 拥有写入权限的用户可以将某行的安全标签更新为任何有效值。 用户可以独立于与行的支配关系进行此更新。
- Db2 要求用户具有写入权限才能执行某些实用程序。
- 如果未启用写权限控制,则所有拥有有效安全标签的用户都等同于拥有写权限的用户。