以SYS身份查询排除SYS的所有已授予对象权限的SQL命令咨询
非SYS接收方的数据库对象权限查询命令
执行前置要求
必须以SYS管理员身份登录数据库实例,该身份具备读取全库数据字典的权限,才能获取跨用户的所有授权记录。
查询的核心过滤规则为:仅剔除权限接收主体是SYS的条目,其余所有对象权限授予记录均会正常返回。
实现原理
查询依托Oracle内置的DBA_TAB_PRIVS数据字典视图完成,该视图完整存储了全库范围内针对表、视图、序列等对象的权限授予信息。
可直接运行的查询语句
SELECT grantee AS 被授权用户/角色, owner AS 对象属主, table_name AS 授权对象名称, privilege AS 授予的权限类型, grantable AS 是否允许转授该权限 FROM DBA_TAB_PRIVS WHERE grantee != 'SYS';
补充说明:Oracle数据字典中的主体名称默认以大写形式存储,上述过滤条件可准确匹配并排除所有授予给SYS的权限;如果不需要展示公共组PUBLIC的授权记录,可在WHERE条件中追加
AND grantee != 'PUBLIC'。
内容的提问来源于stack exchange,提问作者XX_User
相关产品推荐
相关产品推荐

