Oracle查詢使用者權限角色(dba_sys_privs) )

來源:互聯網
上載者:User
Oracle查詢使用者權限(轉自:CSDN)

資料字典

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.

Oracle 本身的資料字典設計我個人覺得很合理, 因為DBA_xxx, ALL_xxx,USER_xxx 讓人一看大概就知道這個視圖是幹什麼用的. 本文簡要總結了一下與許可權,角色相關的視圖.

一. 概述

   與許可權,角色相關的視圖大概有下面這些:

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.