使用一条语句对多个属性和表进行 Oracle SQL 特权授权
Posted
技术标签:
【中文标题】使用一条语句对多个属性和表进行 Oracle SQL 特权授权【英文标题】:Oracle SQL privelege authorization on multiple attributes and tables with one statement 【发布时间】:2012-10-28 03:13:09 【问题描述】:是否可以在一个语句中对不同的表或属性授予不同的权限?
比如我要合并:
GRANT SELECT ON tbl TO user;
和
GRANT UPDATE OF attr ON tbl TO user;
此外,我可以结合授予不同关系的特权吗:
GRANT INSERT ON tbl2;
所有在一个语句中。
【问题讨论】:
【参考方案1】:您可以在一个GRANT
中组合多个对象权限,但仅限于同一个对象。例如:
GRANT SELECT, UPDATE(column1, column2), INSERT on TBL to user;
但是,正如您在manual 的语法图中看到的那样,每个GRANT
一次只能操作一个对象。
但是,如果您使用 CREATE SCHEMA
语法,则可以将多个 GRANT
s 作为单个语句运行。
CREATE SCHEMA AUTHORIZATION owner_user
GRANT SELECT ON TBL TO user
GRANT SELECT ON TBL2 TO user;
如果您希望简化代码,这将无济于事。但是,如果您对使用单个语句有一些技术要求,它可能会起作用。例如,我经常发现结合 DDL 语句可以显着减少运行安装脚本所需的时间,尤其是在网络速度较慢的情况下。
【讨论】:
以上是关于使用一条语句对多个属性和表进行 Oracle SQL 特权授权的主要内容,如果未能解决你的问题,请参考以下文章