如何获取授权表的授权索引、触发器和同义词

how to get granted indexes,triggers and synonyms of granted tables

我已经创建了两个用户,user1 和 user2,并将 user1 的某些表、函​​数、过程、视图、序列和包的所有权限授予 user2。我正在使用以下查询来获取授予对象的列表:-

SELECT * FROM USER_TAB_PRIVS where grantor = 'user1' and grantee = 'user2'

上面提到的查询给出了所有对象的列表,如表、函数、过程、视图、序列和包。它不提供索引名称、同义词名称和触发器名称。

任何人都可以建议我如何授予索引、触发器和同义词的权限。或者如何获取授权表的触发器、索引和同义词。

索引或触发器没有像 SELECT 这样的权限。 阅读 https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm 了解任何类型的数据库对象的可能权限,尤其是表 18-1 和 18-2。如果触发器存在并启用,它会在满足条件(插入、更新等)时执行。如果索引存在,则在优化器需要时使用它。

您可以从视图中获取对象列表,只需在 OWNER 列上添加一些 WHERE:

SELECT *
  FROM all_triggers;

SELECT *
  FROM all_synonyms;

SELECT *
  FROM all_indexes;

要获取所有可用对象的架构,您可以使用 ALL_OBJECTS 查看。如果您不知道应该使用什么常量,那么仅仅查看选定的不同对象类型可能比在 oracle 文档中查找它们更快。

Select distinct object_type from all_objects;