如何获得授予的表

时间:2015-12-24 06:38:41

标签: java oracle11g database-schema privileges

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

SELECT * FROM USER_TAB_PRIVS,其中grantor =' user1'和grantee =' user2'

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

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

2 个答案:

答案 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;