使用一条语句对多个属性和表进行Oracle SQL特权授权 [英] Oracle SQL privelege authorization on multiple attributes and tables with one statement
问题描述
是否可以在一个语句中对不同的表或属性授予不同的特权?
Is it possible to grant different privileges on different tables or attributes within the one statement?
例如,我想合并:
GRANT SELECT ON tbl TO user;
和
GRANT UPDATE OF attr ON tbl TO user;
此外,我可以将授予特权合并到另一个关系上吗?
Furthermore, could I combine granting privilege on a different relation:
GRANT INSERT ON tbl2;
所有内容均在一条语句中.
All in the one statement.
推荐答案
您可以在一个GRANT
中组合多个对象特权,但只能用于同一对象.例如:
You can combine multiple object privileges in one GRANT
, but only for the same object. For example:
GRANT SELECT, UPDATE(column1, column2), INSERT on TBL to user;
但是,正如您在手册的语法图,每个GRANT
一次只能操作一个对象.
But, as you can see in the manual's syntax diagram, each GRANT
can only operate on one object at a time.
但是,如果使用CREATE SCHEMA
语法,则可以将多个GRANT
作为单个语句运行.
However, you can run multiple GRANT
s as a single statement if you use the CREATE SCHEMA
syntax.
CREATE SCHEMA AUTHORIZATION owner_user
GRANT SELECT ON TBL TO user
GRANT SELECT ON TBL2 TO user;
如果您想简化代码,这将无济于事.但是,如果您对使用单个语句有一些技术要求,则可能会起作用.例如,我经常发现结合DDL语句可以大大减少运行安装脚本所需的时间,尤其是在网络速度较慢的情况下.
If you're looking to simplify your code, this won't help. But if you have some technical requirement to use a single statement, it may work. For example, I've often found that combining DDL statements can significantly reduce the time it takes to run install scripts, especially over a slow network.
这篇关于使用一条语句对多个属性和表进行Oracle SQL特权授权的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!