使用一个语句对多个属性和表进行Oracle SQL privelege授权

时间:2012-10-28 03:13:09

标签: sql oracle sqlplus

是否可以在一个语句中为不同的表或属性授予不同的权限?

例如我想要合并:

GRANT SELECT ON tbl TO user;

GRANT UPDATE OF attr ON tbl TO user;

此外,我可以将授予特权与不同的关系结合起来:

GRANT INSERT ON tbl2;

所有声明。

1 个答案:

答案 0 :(得分:6)

您可以在一个GRANT中组合多个对象权限,但仅限于同一个对象。例如:

GRANT SELECT, UPDATE(column1, column2), INSERT on TBL to user;

但是,正如您在manual的语法图中所看到的,每个GRANT一次只能对一个对象进行操作。

enter image description here

但是,如果使用GRANT语法,则可以将多个CREATE SCHEMA作为单个语句运行。

CREATE SCHEMA AUTHORIZATION owner_user
GRANT SELECT ON TBL TO user
GRANT SELECT ON TBL2 TO user;

如果您希望简化代码,这将无济于事。但是,如果您有一些技术要求使用单个语句,它可能会起作用。例如,我经常发现组合DDL语句可以显着减少运行安装脚本所需的时间,尤其是在慢速网络上。