查看数据库里系统权限有哪些,可以看下面的系统表:
system_privilege_map
但是要想知道oracle里每个对象有哪些对象权限以前是没有办法知道的,我们只能通过一种巧妙的办法,比如你想知道表有哪些对象权限:grant all on t to test(这里test是一个用户),然后查询:
SQL> grant all on t to test;
Grant succeeded.
SQL> select privilege from dba_tab_privs where grantee='TEST';
PRIVILEGE
----------------------------------------
FLASHBACK
DEBUG
QUERY REWRITE
ON COMMIT REFRESH
REFERENCES
UPDATE
SELECT
INSERT
INDEX
DELETE
ALTER
11 rows selected.
SQL>
有了v$object_privilege就方便多了,直接查询:
SQL> select * from v$object_privilege where object_type_name='TABLE';
OBJECT_TYP OBJECT_TYPE_ID PRIVILEGE_ID PRIVILEGE_NAME
---------- -------------- ------------ --------------------
TABLE 2 0 ALTER
TABLE 2 3 DELETE
TABLE 2 5 INDEX
TABLE 2 6 INSERT
TABLE 2 9 SELECT
TABLE 2 10 UPDATE
TABLE 2 11 REFERENCES
TABLE 2 22 UNDER
TABLE 2 23 ON COMMIT REFRESH
TABLE 2 24 QUERY REWRITE
TABLE 2 26 DEBUG
TABLE 2 27 FLASHBACK
12 rows selected.
SQL>
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/19602/viewspace-1059309/ ,如需转载,请注明出处,否则将追究法律责任。