Oracle怎样查看被授权了那些用户的那些表

打印 上一主题 下一主题

主题 909|帖子 909|积分 2727

在Oracle数据库中,要查看一个用户被授予了哪些表的权限,通常需要查询数据字典视图。以下是一些常用的查询,帮助你查找特定用户被授予的表权限:

  • 查看某个用户被授予的全部表权限
假如你想查看用户YOUR_USERNAME被授予的全部表的权限,你可以查询DBA_TAB_PRIVS或ALL_TAB_PRIVS视图(取决于你的权限)。
  1. SELECT GRANTOR, TABLE_NAME, PRIVILEGE  
  2. FROM DBA_TAB_PRIVS   
  3. WHERE GRANTEE = 'YOUR_USERNAME'  
  4. ORDER BY TABLE_NAME, PRIVILEGE;
复制代码
假如你没有DBA权限,但想查看自己的权限,可以使用ALL_TAB_PRIVS视图:
  1. SELECT GRANTOR, TABLE_NAME, PRIVILEGE  
  2. FROM ALL_TAB_PRIVS   
  3. WHERE GRANTEE = 'YOUR_USERNAME'  
  4. ORDER BY TABLE_NAME, PRIVILEGE;
复制代码

  • 查看某个用户被授予的特定表的权限
假如你想查看用户YOUR_USERNAME对表YOUR_TABLE_NAME的权限,可以如许做:
  1. SELECT GRANTOR, PRIVILEGE  
  2. FROM DBA_TAB_PRIVS   
  3. WHERE GRANTEE = 'YOUR_USERNAME' AND TABLE_NAME = 'YOUR_TABLE_NAME';
复制代码
或者,假如你只想查看自己的权限:
  1. SELECT GRANTOR, PRIVILEGE  
  2. FROM ALL_TAB_PRIVS   
  3. WHERE GRANTEE = 'YOUR_USERNAME' AND TABLE_NAME = 'YOUR_TABLE_NAME';
复制代码

  • 查看某个表的全部被授予权限的用户
假如你想查看哪些用户被授予了表YOUR_TABLE_NAME的权限,可以查询:
  1. SELECT GRANTEE, PRIVILEGE  
  2. FROM DBA_TAB_PRIVS   
  3. WHERE TABLE_NAME = 'YOUR_TABLE_NAME'  
  4. ORDER BY GRANTEE, PRIVILEGE;
复制代码
注意:


  • DBA_TAB_PRIVS视图包含数据库中全部效户的表权限信息,但通常只有具有DBA权限的用户才气查询此视图。
  • ALL_TAB_PRIVS视图包含当前用户可以查看的表权限信息。
  • 确保将上述查询中的YOUR_USERNAME和YOUR_TABLE_NAME替换为现实的用户名和表名。
  • 权限可能包罗SELECT, INSERT, UPDATE, DELETE, REFERENCES, EXECUTE等。
最后,记着,当你更改用户的权限时,这些更改可能不会立即反映在数据字典视图中。Oracle可能会缓存这些信息,以是有时你可能需要等待一段时间或执行某些操作(如重新毗连)来查看最新的权限信息

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

去皮卡多

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表