oracle - 如何在一个角色的所有表上查找缺少的授权
问题描述
我的学生数据库架构有一些问题。我想通过查询找到哪些表没有:例如“SELECT”授予角色 XXX。第二个例子是,在表中,我喜欢删除、更改的授予,但现在我想用一个查询检查所有表,以查找哪些表没有选择授予角色“STUDENT_DBA”或该角色没有授予的权限选择...请帮助
解决方案
SELECT table_name
FROM dba_tables
WHERE owner = 'STUDENT'
AND table_name NOT IN
(SELECT table_name
FROM dba_tab_privs
WHERE owner = 'STUDENT'
AND privilege = 'SELECT'
AND grantee = 'STUDENT_DBA');
这将返回 STUDENT 模式中没有直接授予 STUDENT_DBA 角色选择权限的所有表。
推荐阅读
- node.js - 用于 NodeJS 的 Google App Engine 标准环境中的 Memcache
- laravel - Route::has note 检测路由资源
- wordpress - 在 Wordpress 上使用网格插件记录错误
- google-analytics - 来自 Google Analytics 中外部域的奇怪流量
- python - 在 LSTM 中关闭 Return_Sequence 后如何解决尺寸问题?
- ruby - 使用 openssl ruby 使用密码加密私钥
- c - 尝试在 C 中制作整数到二进制转换器,但它只是打印随机字符串
- javascript - 使用 javascript 解析来自具有 HTTP 请求的网站的 JSON 数据
- python - 将 TensorFlow sess.run 转换为 @tf.function
- c++ - 如何更改目录中文件夹中的文件名?