【问题标题】:How to clean up current oracle user's privilege如何清理当前oracle用户的权限
【发布时间】:2013-06-05 16:16:25
【问题描述】:

据报道,当前Oracle 11g schema 用户的权限已超出限制,例如,用户对整个数据库具有完全的导入/导出权限,用户可以对其他schema 进行DDL。

那么我们如何找出当前用户的权限并使用查询来清理呢?我知道有三个

SELECT * FROM USER_SYS_PRIVS; 
SELECT GRANTEE, TABLE_NAME, PRIVILEGE FROM USER_TAB_PRIVS WHERE GRANTOR='USERNAME';
SELECT * FROM USER_ROLE_PRIVS;

但是哪一个是最需要的以及如何清理?目前似乎没有人给予产生问题的当前用户的全部权限。

【问题讨论】:

  • 您的查询应该涵盖所有内容;授予要么针对对象,要么针对系统特权,并且要么直接授予,要么授予角色。 “坏”特权可能存在于三个查询中的任何一个中。我不确定我们是否可以帮助您,没有恶意赠款,这完全取决于您的系统。
  • @jonearles 谢谢。那么我可以使用上述查询之一来检查当前用户是否有权访问 impdp 或 expdp oracle 数据库?用户确实有这个权限,但没有显示在任何一个查询结果中。
  • 是的。除了 Dave 的回答,我认为常规 IMP 和 EXP、IMP_FULL_DATABASE 和 EXP_FULL_DATABASE 的旧角色同样危险。

标签: oracle database-administration


【解决方案1】:

最危险的权限是名称中带有 ANY 的权限 -- SELECT ANY TABLE、ALTER ANY VIEW 等。这些权限应仅限于 DBA 和支持人员。

我相信您正在寻找的角色是 DATAPUMP_EXP_FULL_DATABASE 和 DATAPUMP_IMP_FULL_DATABASE。

【讨论】:

  • 谢谢,我是 Oracle 的新手,请问如何查询当前用户可以访问的模式列表?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多