我创建了两个用户,user1和user2,并授予user2对user1的一些表、函数、过程、 View 、序列和包的所有权限。我正在使用以下查询来获取授予对象的列表:-
SELECT * FROM USER_TAB_PRIVS,其中授予者 = 'user1' 且被授予者 = 'user2'
上面提到的查询给出了所有对象的列表,如表、函数、过程、 View 、序列和包。它没有给出索引名称、同义词名称和触发器名称。
任何人都可以建议我如何授予索引、触发器和同义词的权限。或者如何获取授予表的触发器、索引和同义词。
最佳答案
索引或触发器没有像 SELECT 这样的权限。 阅读 https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm关于任何类型的数据库对象可能具有的权限,特别是表 18-1 和 18-2。如果触发器存在并启用,则在满足条件(ON INSERT、UPDATE 等)时执行。如果索引存在,则在优化器需要时使用它。
您可以从 View 中获取对象列表,只需在 OWNER 列上添加一些 WHERE 即可:
SELECT *
FROM all_triggers;
SELECT *
FROM all_synonyms;
SELECT *
FROM all_indexes;
关于java - 如何获取授权表的索引、触发器和同义词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34448426/