Oracle学习笔记之与权限相关的视图

在平时的运维工作中,与权限有关的视图会经常用到。为不同的用户分配相应的权限,既能提高工作效率又能保护数据库的安全性。下面我来总结下经常用的几个权限视图。

1.DBA_XXX_PRIVS

DBA_XXX_PRIVS包括所有的系统权限、角色和对象。可以使用sys用户来查询我们想要查询的目标。

DBA_SYS_PRIVS

DBA_SYS_PRIVS describes system privileges granted to users and roles.
Oracle学习笔记之与权限相关的视图
该视图包括了赋予所有用户和角色的系统权限。
ADMIN_OPTION为YES表示被赋予权限的用户可以将该权限赋予其他用户;NO则表示不可以赋予其他用户,也就是不能够传递权限。
例如,SCOTT用户的系统权限。
Oracle学习笔记之与权限相关的视图
常用的CONNECT角色拥有的系统权限。
Oracle学习笔记之与权限相关的视图

DBA_ROLE_PRIVS

DBA_ROLE_PRIVS describes the roles granted to all users and roles in the database.
Oracle学习笔记之与权限相关的视图
该视图包含了赋予所有用户和角色的角色。
例如,SCOTT用户拥有的角色。
Oracle学习笔记之与权限相关的视图

DBA_TAB_PRIVS

DBA_TAB_PRIVS describes all object grants in the database.
Oracle学习笔记之与权限相关的视图
包含了所有赋予的对象权限。
GRANTABLE和ADMIN_OPTION的作用一样,表示该用户可以将自己拥有的权限授权给别人。
以下就是对象权限的内容。
Oracle学习笔记之与权限相关的视图
例如,赋予SCOTT用户的对象权限。
Oracle学习笔记之与权限相关的视图

2. USER_XXX_PRIVS

USER_XXX_PRIVS包含当前用户的系统权限、对象权限和角色。以下用Oracle默认的普通用户举例子。

USER_SYS_PRIVS

USER_SYS_PRIVS describes system privileges granted to the current user.
Oracle学习笔记之与权限相关的视图
该视图包含了当前用户被赋予的系统权限。
Oracle学习笔记之与权限相关的视图

USER_ROLE_PRIVS

USER_ROLE_PRIVS describes the roles granted to the current user.
Oracle学习笔记之与权限相关的视图
包含了当前用户被赋予的角色。
Oracle学习笔记之与权限相关的视图

USER_TAB_PRIVS

USER_TAB_PRIVS describes the object grants for which the current user is the object owner, grantor, or grantee. Its columns are the same as those in DBA_TAB_PRIVS.
Oracle学习笔记之与权限相关的视图
包含了用户被赋予的对象权限。
Oracle学习笔记之与权限相关的视图

3.ROLE_XXX_PRIVS

ROLE_XXX_PRIVS包含角色用有的系统权限、对象权限和角色。

ROLE_SYS_PRIVS

ROLE_SYS_PRIVS describes system privileges granted to roles. Information is provided only about roles to which the user has access.
Oracle学习笔记之与权限相关的视图
包含了角色拥有的系统权限。
例如,角色CONNECT就拥有CREATE SESSION的系统权限。
Oracle学习笔记之与权限相关的视图

ROLE_ROLE_PRIVS

ROLE_ROLE_PRIVS describes the roles granted to other roles. Information is provided only about roles to which the user has access.
Oracle学习笔记之与权限相关的视图
包含了角色被赋予的角色。
例如,角色DBA被赋予的有哪些角色。
Oracle学习笔记之与权限相关的视图

ROLE_TAB_PRIVS

ROLE_TAB_PRIVS describes table privileges granted to roles. Information is provided only about roles to which the user has access.
Oracle学习笔记之与权限相关的视图
包含了角色被赋予的对象权限。
例如,角色ORDADMIN被赋予的对象权限。

4.总结

以DBA开头的视图包含了数据库内所有的系统权限、对象权限和角色。在登陆sys用户后,可以查看。如果想要查看某个用户或某个角色,那么需要GRANTEE条件。
以USER开头的视图包含了当前用户的系统权限、对象权限和角色。
以ROLE开头的视图包含了该角色拥有的系统权限、对象权限和角色。

上一篇:【数据库优化专题】MySQL视图优化(二)


下一篇:不同包下,相同数据结构的两个类进行转换