在Oracle中,您可以授予像以下这样的系统特权:
但是你也可以通过这种方式授予权限。
返回
GRANT CREATE TRIGGER TO MY_USER;
但是你也可以通过这种方式授予权限。
GRANT CREATE ANY TRIGGER TO MY_USER;
由于系统特权是针对整个系统的,因此上述两个语句之间有什么区别?额外的ANY
关键字是否授予了比系统权限更多的内容?如果我添加一个Grant ... ON SCHEMA ...
,那么它就不再是系统特权了,对吗?
假设数据库中有来自不同用户的多个模式/对象,没有这些特权,用户就无法访问。
编辑:
SELECT *
FROM DBA_SYS_PRIVS
WHERE grantee = 'MY_USER';
返回
GRANTEE PRIVILEGE
------------ -------------
MY_USER CREATE ANY TRIGGER
MY_USER CREATE TRIGGER
(我省略了列ADMIN_OPTION
和COMMON
)
当使用MY_USER、MY_USER2或任何其他用户查询时,结果相同。我在这里看不到与模式的连接。也有可能只拥有CREATE ANY TRIGGER
权限。