zoukankan      html  css  js  c++  java
  • Oracle管理监控之Oracle用户权限

    数据字典

    1、动态数据字典是以v$xxx开始的数据字典,在数据库中约有150个左右,这些数据字典反映数据库动态运行状况,在不同时间查询会得到不同的结果。

    2、DBA数据字典是以DBA_xxx表示,该数据字典存储数据库结构,查询DBA数据字典可以反映数据库结构设置,管理磁盘空间和表空间、事务与回退段、用户与表空间等信息。

    3、用户数据字典是以USER_xxx表示,这些数据字典反应用户所创建的实体信息。如,USER_TABLES、USER_VIEWS,数据库管理员具有操作全体用户所有实体的权限,可以查询这类数据字典,了解用户所创建实体状况,必要时可以将用户创建的不正确的实体删除。

    4、ALL_xxx类数据字典,表示用户所创建的实体及用户有权可以存取的实体。

    select privilege from dba_SYS_privs where grantee=‘USERNAME’

    Oracle查询用户权限

    -- 确定角色的权限
    select * from role_tab_privs ;              包含了授予角色的对象权限
    select * from role_role_privs ;             包含了授予另一角色的角色
    select * from role_sys_privs ;              包含了授予角色的系统权限
    -- 确定用户帐户所授予的权限
    select * from DBA_tab_privs ;   直接授予用户帐户的对象权限
    select * from DBA_role_privs ; 授予用户帐户的角色
    select * from DBA_sys_privs ;   授予用户帐户的系统权限
    查看当前用户权限:
    SQL> select * from session_privs;
    PRIVILEGE
    ----------------------------------------
    CREATE SESSION
    CREATE TABLE
    CREATE CLUSTER
    CREATE SYNONYM
    CREATE VIEW
    CREATE SEQUENCE
    CREATE PROCEDURE
    CREATE TRIGGER
    8 rows selected.

    . 概述

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

           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';

  • 相关阅读:
    Homebrew简介及安装
    MongoDB MapReduce学习笔记
    mongodb_修改器($inc/$set/$unset/$push/$pop/upsert......)
    【资源共享】《Rockchip 量产烧录 指南 V1.0》
    【资源共享】《DDR常见问题简单排查》
    【技术案例】Firefly-RK3399多路视频编解码
    【资源共享】《Rockchip 以太网 开发指南 V2.3.1》
    【资源共享】Rockchip Audio 开发指南
    关于在RK3288上安装Opencv的方法
    debian stretch + kernel 4.4 固件发布(支持硬件加速),可安装kodi
  • 原文地址:https://www.cnblogs.com/wcwen1990/p/4112542.html
Copyright © 2011-2022 走看看