您的位置:

Oracle查询用户权限的使用方法

一、Oracle查询用户权限命令

    SQL> select * from dba_sys_privs where grantee = 'USERNAME';

    SQL> select * from user_sys_privs;

    SQL> select * from role_sys_privs where role in (select granted_role from dba_role_privs where grantee = 'USERNAME');

以上三个查询命令分别为在dba_sys_privs表、user_sys_privs表和role_sys_privs表中查询用户的系统权限和角色权限。

其中dba_sys_privs表存放数据库中所有用户的系统权限信息;user_sys_privs表存放当前用户的系统权限信息;role_sys_privs表存放用户所拥有角色的系统权限信息。

二、Oracle查询用户权限的语句

    SELECT * FROM session_privs;

    SELECT * FROM dba_role_privs WHERE grantee = 'USERNAME';

    SELECT * FROM dba_tab_privs WHERE grantee = 'USERNAME';

以上三个查询语句分别为查询当前用户的权限、查询用户的角色权限和查询用户对表的权限。

session_privs表记录了当前用户有哪些权限;dba_role_privs表记录了所有角色的权限信息;dba_tab_privs表记录了用户对表的权限信息。

三、Oracle查询某个用户的权限

    SELECT * FROM dba_sys_privs WHERE grantee = 'USERNAME';

    SELECT * FROM dba_role_privs WHERE grantee = 'USERNAME';

    SELECT * FROM dba_tab_privs WHERE grantee = 'USERNAME';

以上三个查询语句分别为查询某个用户的系统权限、角色权限和表权限。

dba_sys_privs表、dba_role_privs表和dba_tab_privs表都是记录数据库中所有用户的权限信息,可以使用grantee字段来筛选某个用户。

四、Oracle查询用户权限和角色

    SELECT * FROM role_sys_privs WHERE role IN (SELECT granted_role FROM dba_role_privs WHERE grantee = 'USERNAME');

    SELECT * FROM dba_sys_privs WHERE grantee = 'USERNAME';

以上两个查询语句分别为查询用户所拥有的角色和系统权限。

role_sys_privs表记录了角色的权限信息,可以使用role字段来查询某个角色的权限信息。

五、查询Oracle用户权限

    SELECT * FROM user_sys_privs;

    SELECT * FROM user_role_privs;

    SELECT * FROM user_tab_privs;

以上三个查询语句分别为查询当前用户的系统权限、角色权限和表权限。

user_sys_privs表、user_role_privs表和user_tab_privs表记录了当前用户的权限信息,可以直接查询。

六、Oracle查询用户dba权限

    SELCET * FROM dba_role_privs WHERE granted_role = 'DBA';

该查询语句可以查询拥有dba权限的所有用户。

dba_role_privs表中记录了所有角色的权限信息,可以用granted_role字段来查询某个角色的权限。

七、Oracle给用户查询权限

    GRANT SELECT ON table_name TO USERNAME;

以上语句为给某个用户赋予查询表的权限。

八、Oracle查询当前用户权限

    SELECT * FROM session_privs;

该查询语句可以查询当前用户的所有权限信息。

session_privs表中记录了当前用户的权限信息。

九、Oracle查看用户权限的命令

    SQL> show user;

该命令可以查询当前用户的权限信息和角色信息,并且显示当前用户的用户名。