zoukankan      html  css  js  c++  java
  • oracle 用户 权限

    一. 概述

       与权限,角色相关的视图大概有下面这些:

           DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限

          USER_SYS_PRIVS:   当前用户所拥有的系统权限

          SESSION_PRIVS:     当前用户所拥有的全部权限

          ROLE_SYS_PRIVS:     某个角色所拥有的系统权限

           注意: 要以SYS用户登陆查询这个视图,否则返回空.

          ROLE_ROLE_PRIVS:    当前角色被赋予的角色

          SESSION_ROLES:      当前用户被激活的角色

          USER_ROLE_PRIVS:   当前用户被授予的角色

          另外还有针对表的访问权限的视图:

           TABLE_PRIVILEGES

            ALL_TAB_PRIVS   

           ROLE_TAB_PRIVS:     某个角色被赋予的相关表的权限

           ...   

    二. Examples
       1. 查询当前用户所拥有的权限

                   Select * from session_privs;      

       2.   查询某个用户被赋予的系统权限.

                可以有多种方式

                        Select * from user_sys_privs;

               或者: select * from DBA_SYS_PRIVS where grantee='XXX'

                     (需要当前用户拥有DBA角色)

      3. 查询当前用户被授予的角色:

                1. Select * from SESSION_ROLES order by ROLE  

                说明: 这个查询会返回当前用户所被授予的全部角色, 其中包括

                嵌套授权的角色. 例如将DBA角色授予了一个用户,DBA角色

                已经被授予的角色(例如 exp_full_database 和 imp_full_database)

                 也会被查询出来              

                2. Select * from USER_ROLE_PRIVS       

         4. 查询某一角色被赋予的系统权限

               Select Privilege from ROLE_SYS_PRIVS where ROLE=&Role

            输入 role='CONNECT'

             输出:
               PRIVILEGE
               --------------------
              ALTER SESSION
                CREATE CLUSTER
                CREATE DATABASE LINK
                CREATE SEQUENCE
                CREATE SESSION
                CREATE SYNONYM
                CREATE TABLE
                CREATE VIEW

       5. 查询当前角色被授予的角色

             Select GRANTED_ROLE from ROLE_ROLE_PRIVS where ROLE=&ROLE

             输入 role= 'DBA'

              输出:

               GRANTED_ROLE
               ----------------------
              DELETE_CATALOG_ROLE
                EXECUTE_CATALOG_ROLE
                EXP_FULL_DATABASE
                IMP_FULL_DATABASE
                PLUSTRACE
                SELECT_CATALOG_ROLE

            说明: PLUSTRACE这个角色是用于执行SQL AUTO TRACE的, 通过执行

                   $ORACLE_HOME/sqlplus/admin/plustrce.sql可以生成这个角色.

    -------------------------------------------------------------------------------------------------------------------------------------------------------------

    如何查看oracle用户权限?


     ORACLE数据字典视图的种类分别为:USER,ALL 和 DBA。

      USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息

      ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上

    其他用户创建的对象但该用户有权访问的信息

      DBA_*:有关整个数据库中对象的信息

      (这里的*可以为TABLES,INDEXES,OBJECTS,USERS等。)

      1、查看所有用户

      select * from dba_user;

      select * from all_users;

      select * from user_users;

      2、查看用户系统权限

      select * from dba_sys_privs;

      select * from all_sys_privs;

      select * from user_sys_privs;

      3、查看用户对象权限

      select * from dba_tab_privs;

      select * from all_tab_privs;

      select * from user_tab_privs;

      4、查看所有角色

      select * from dba_roles;

      5、查看用户所拥有的角色

      select * from dba_role_privs;

      select * from user_role_privs;

      6、查看当前用户的缺省表空间

      select username,default_tablespace from user_users;

      7、查看某个角色的具体权限

      如grant connect,resource,create session,create view to TEST;

      8、查看RESOURCE具有那些权限

      用SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';

  • 相关阅读:
    swagger生成接口文档
    二分查找通用模板
    go-json技巧
    【Go】获取用户真实的ip地址
    数据库储存时间类型
    密码加密:md5/sha1 +盐值
    参数里时间格式的转换
    不好定位的元素定位
    vim编辑器
    ps -ef | grep php kill -9
  • 原文地址:https://www.cnblogs.com/sddychj/p/5627394.html
Copyright © 2011-2022 走看看