-
08-0605
-
数据库和对象特权
db2数据库特权大体上分成两类:数据库级特权(针对数据库中的所有对象)和对象级特权(与特定的对象相关联)。
用户可以拥有的数据库级特权有:
CREATETAB: 用户可以在数据库中创建表。
BINDADD: 用户可以使用 BIND 命令在数据库中创建包。
CONNECT: 用户可以连接数据库。
CREATE_NOT_FENCED: 用户可以创建 unfenced 用户定义函数(UDF)。
IMPLICIT_SCHEMA: 用户可以在数据库中隐式地创建模式,而不需要使用 CREATE SCHEMA 命令。
LOAD: 用户可以将数据装载进表中。
QUIESCE_CONNECT: 用户可以访问处于静默(quiesced)状态的数据库。
CREATE_EXTERNAL_ROUTINE: 用户可以创建供应用程序和数据库的其他用户使用的过程。
数据库对象 包括表、视图、索引、模式和包。幸运的是,大多数对象级特权的意义无需解释。下表总结了这些特权。
特权名称
相关对象
描述
CONTROL
表、视图、索引、包、别名、不同的类型、用户定义函数、序列
提供对对象的全部权限。拥有这种特权的用户还可以向其他用户授予或撤消对对象的特权。
DELETE
表、视图
允许用户从对象中删除记录。
INSERT
表、视图
允许用户通过 INSERT 或 IMPORT 命令将记录插入对象中。
SELECT
表、视图
提供使用选择语句来查看对象内容的能力。
UPDATE
表、视图
允许用户使用更新语句修改对象中的记录。
ALTER
表
允许用户使用更改语句更改对象定义。
INDEX
表
允许用户使用创建索引语句在对象上创建索引。
REFERENCES
表
提供在对象上创建或删除外键约束的能力。
BIND
包
允许用户重新绑定现有的包。
EXECUTE
包、过程、函数、方法
允许用户执行包和例程。
ALTERIN
模式
允许用户修改模式中的对象定义。
CREATEIN
模式
允许用户在模式中创建对象。
DROPIN
模式
允许用户删除模式中的对象。
关于对象级特权的信息存储在系统编目视图中。视图名称是
syscat.tabauth、syscat.colauth、syscat.indexauth、syscat.schemaauth、syscat.routineauth
和 syscat.packageauth。
显式特权
可以使用 GRANT 和 REVOKE 命令显式地 对用户或组授予或撤消特权。我们来看看如何在各种对象上使用这些命令。
作为拥有 Administrator 权限的用户登录 Windows,打开两个 DB2 命令窗口。在这两个窗口中,确保将 db2instance
变量设置为 DB2!
在第一个窗口中发出以下命?:
db2 connect to sample
现在,在第二个窗口中发出以下命令:
db2 connect to sample user test1 using password
请记住,第一个窗口中的命令是由一个拥有 SYSADM 权限的用户发出的。第二个窗口中的命令是由 tst1
发出的,这个用户对示例数据库没有特殊的权限或特权。注意,与示例数据库中的表相关联的模式名是发出 db2sampl 命令的用户的名称。在这些示例中,这个用户是
GMILNE。
现在,在第二个窗口中发出以下命令: db2 select * from gmilne.org
应该会看到以下响应:
SQL0551N "TEST1" does not have the privilege to perform
operation "SELECT"
on object "GMILNE.ORG".
共5页: 上一页 1 [2] [3] [4] [5] 下一页
发表评论
















- 评论 (0)
- 版权声明
此页仅显示最新5条评论,点击查看全部