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

标签 java oracle11g database-schema privileges

我创建了两个用户,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/

相关文章:

java - Compose 解决来自 IBM 云应用程序的 RabbitMq 连接问题

java - 如何在 Java 字符串中插入表情符号?

java - Android 图库 View 在单个屏幕上显示两个 View 。

bash - 如何在启动数据库时从 cloudformation 模板创建 RDS 架构?

mysql - 标签系统和评分系统

java - 连接到 AWS Neptune

database - 我如何在 Toad for Oracle 中定义主外键?

java - 如何更改 xml 审计文件中的时区(Oracle 11g)?

oracle - 在 Unix 上的 SQL Plus 中执行多行语句

mysql - 拆分 MySQL 数据库