是否可以在一个语句中对不同的表或属性授予不同的权限?
例如我想结合:
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;
但是,正如您在手册的语法图中看到的那样,每个GRANT
一次只能对一个对象进行操作。
但是,GRANT
如果使用CREATE SCHEMA
语法,则可以将多个 s 作为单个语句运行。
CREATE SCHEMA AUTHORIZATION owner_user
GRANT SELECT ON TBL TO user
GRANT SELECT ON TBL2 TO user;
如果您希望简化代码,这将无济于事。但是,如果您对使用单个语句有一些技术要求,它可能会起作用。例如,我经常发现组合 DDL 语句可以显着减少运行安装脚本所需的时间,尤其是在网络速度较慢的情况下。