我创建了两个用户user1和user2,并为user1的某些表,函数,过程,视图,序列和包授予了user2的所有权限。我使用以下查询来获取已授予对象的列表: -
SELECT * FROM USER_TAB_PRIVS,其中grantor =' user1'和grantee =' user2'
上面提到的查询给出了所有对象的列表,如表,函数,过程,视图,序列和包。它不给出索引名,同义词名和触发器名。
任何人都可以建议我如何为索引,触发器和同义词授予权限。或者如何获得授权表的触发器,索引和同义词。
答案 0 :(得分:0)
索引或触发器没有SELECT等权限。 阅读https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm关于任何类型数据库对象的可能特权,尤其是表18-1和18-2。如果触发器存在并启用它,则在满足条件时执行(ON INSERT,UPDATE等)。如果index存在,则在优化器需要时使用它。
您可以从视图中获取对象列表,只需在OWNER列上添加一些WHERE:
SELECT *
FROM all_triggers;
SELECT *
FROM all_synonyms;
SELECT *
FROM all_indexes;
答案 1 :(得分:0)
要获取架构所有可用对象,可以使用ALL_OBJECTS视图。如果您不知道应该使用哪些常量,那么只是窥视选定的不同对象类型可能比在oracle文档中查找它们更快。
Select distinct object_type from all_objects;