在 DB2 9.5 中实现新的安全功能,第 2 部分: 理解可信上下文
2009-11-20 00:00:00 来源:WEB开发网DB2 允许在不同的授权 ID 下使用建立的可信上下文。为此,定义可信上下文时必须使用特定的 ID。如果指定 PUBLIC,那么任何授权 ID 都可以使用这个可信上下文。当建立一个显式可信上下文时,这个可信上下文的创建者就获得了将连接上的授权 ID 切换到不同授权 ID 的能力。
可信上下文切换用户
切换必须在事务边界上进行,否则任何打开的事务将被回滚,连接将中止并返回一个错误。
使用提示
一种好的实践是使用一条显式的 COMMIT WORK 语句完成工作或事务的所有逻辑单元。这样就建立了一个事务边界,可以确保在切换 ID 之前正在处理的所有工作都能完成。
对于每个可信上下文对象,安全管理员可以选择指定允许切换到的 ID 列表,并且可以指定进行切换时是否需要验证。安全管理员还可以为各个 ID 指定默认角色或备选角色。
下面探索如何使用可信上下文以及切换用户的功能:
在为 Ally 创建可信上下文之前,使用 Ally 连接到 SAMPLER 数据库,并尝试更新 LE_PENSIONS 表:UPDATE DB2INST1.LE_PENSIONS SET BASE=BASE + 2500 WHERE EMPNO='012214'
或者使用 UPDtab.sql 脚本。该脚本应该会失败,因为 Ally 没有执行这项操作的特权。
清单 13. 脚本失败DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0551N "ALLY" does not have the privilege to perform operation "UPDATE" on
object "DB2INST1.LE_PENSIONS". SQLSTATE=42501
更多精彩
赞助商链接