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

例如我想结合:

GRANT SELECT ON tbl TO user;


GRANT UPDATE OF attr ON tbl TO user;

此外,我是否可以结合授予不同关系的特权:
GRANT INSERT ON tbl2;

都在一个声明中。

最佳答案

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

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

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

但是,如果您使用 GRANT 语法,则可以将多个 CREATE SCHEMA 作为单个语句运行。
CREATE SCHEMA AUTHORIZATION owner_user
GRANT SELECT ON TBL TO user
GRANT SELECT ON TBL2 TO user;

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

关于sql - 使用一条语句对多个属性和表进行 Oracle SQL 特权授权,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13106087/

10-12 23:21