本文详细介绍了解用户和组账户与DB2 UDB的交互
GRANT SELECT ON TABLE ADM.TAXCODE TO USER XYZ。
其中的 xyz 是一个任意的字符串,没有映射为外部安全设施中的已有用户,然后 DB2 UDB 就会在其 GUI 工具或者某些目录表中显示 xyz,如图 2 所示。但这并不意味着存在或创建了名为 xyz 的用户。

图 2. 向未定义用户授权后的表特权
图 1 下方显示了一个授权场景的例子。这个用户叫 bob,已经成功连接到数据库,现在尝试对表 ADM.TAXCODES 执行 SELECT 语句。DB2 UDB 查看其目录表,看看该用户是否被授予了这个表的 SELECT 权限。因为此权限已经授予 bob,DB2 UDB 允许执行 SELECT 语句。
如果用户未经授权而对某个对象执行一种操作,DB2 UDB 就会拒绝操作并向客户机应用程序返回错误信息。比方说,如果用户 bob 尝试向 ADM.TAXCODES 表中插入一行,但是没有足够的权限,就会返回下面的错误消息:
清单 3. 用户授权失败时 DB2 UDB 返回的消息:
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 "BOB" does not
have the privilege to perform
operation "INSERT" on object "ADM.TAXCODES".
SQLSTATE=42501如果遇到类似的消息,一定要确认连接到数据库所提供的用户 ID 是否具有执行目标操作的适当权限。必须明确授予该用户此特权,或者该用户属于拥有该特权的组,或者该用户是超级用户。
超级用户
责编:豆豆技术应用
正在加载评论...