【发布时间】: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