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

來源:互聯網
上載者:User
Oracle查詢使用者權限 2009-06-22 16:54

資料字典

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

Alibaba Cloud Hot Products

Elastic Compute Service (ECS) Dedicated Host (DDH) ApsaraDB RDS for MySQL (RDS) ApsaraDB for PolarDB(PolarDB) AnalyticDB for PostgreSQL (ADB for PG)
AnalyticDB for MySQL(ADB for MySQL) Data Transmission Service (DTS) Server Load Balancer (SLB) Global Accelerator (GA) Cloud Enterprise Network (CEN)
Object Storage Service (OSS) Content Delivery Network (CDN) Short Message Service (SMS) Container Service for Kubernetes (ACK) Data Lake Analytics (DLA)

ApsaraDB for Redis (Redis)

ApsaraDB for MongoDB (MongoDB) NAT Gateway VPN Gateway Cloud Firewall
Anti-DDoS Web Application Firewall (WAF) Log Service DataWorks MaxCompute
Elastic MapReduce (EMR) Elasticsearch

Alibaba Cloud Free Trail

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.