Oracle角色、許可權的一些常用檢視

mengzhaoliang發表於2008-11-30

Oracle角色、許可權的一些常用檢視

      ORACLE中資料字典檢視分為3大類, 用字首區別,分別為:USER,ALL 和 DBA,許多資料字典檢視包含相似的資訊。

      USER_*:有關使用者所擁有的物件資訊,即使用者自己建立的物件資訊

      ALL_*:有關使用者可以訪問的物件的資訊,即使用者自己建立的物件的資訊加上其他使用者建立的物件但該使用者有權訪問的資訊

       DBA_*:有關整個資料庫中物件的資訊

(這裡的*可以為TABLES, INDEXES, OBJECTS, USERS等)。

比如:只知道scott使用者的密碼,需要檢視一下scott的一些資訊
1、查scott使用者的建立時間、使用者狀態、使用的預設表空間、臨時表空間等資訊

SQL> conn scott/mzl

已連線。

SQL>select * from user_users;

另:select * from all_users;(scott使用者可以訪問其他資料庫使用者對資訊的使用者名稱)
另:select * from all_users;(所有資料庫的使用者資訊,各使用者的密碼、狀態、預設表空間、臨時表空間等)


2、檢視scott使用者自己擁有什麼角色

SQL> select * from user_role_privs;

USERNAME GRANTED_ROLE ADM DEF OS_

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

SCOTT       CONNECT      NO     YES      NO

SCOTT        RESOURCE   NO     YES     NO

注:“ADM”表示這個使用者是否可以把該具有的角色賦予給其他的使用者

另:沒有all_role_privs這個檢視
另:select * from dba_role_privs(所有資料庫使用者具有哪些角色,這個檢視只有dba角色的許可權才可以查詢)

3、檢視scott使用者自己具有什麼的許可權

SQL> select * from session_privs;


4、檢視scott使用者具有什麼的系統許可權呢

SQL>select * from user_sys_privs;

另:沒有all_sys_privs檢視
另:select * from dba_sys_privs;(所有資料庫使用者、角色所用於的系統許可權)

5、檢視scott使用者中,都哪些使用者把物件授予給scott使用者呢(讀取其他使用者物件的許可權)

SQL>select * from user_tab_privs;

另:select * from all_tab_privs;   select * from dba_tab_privs;  有空再琢磨琢磨


6、檢視scott使用者中擁有的resource角色都具有什麼許可權呢

SQL> select * from role_sys_privs where role='RESOURCE';

ROLE                               PRIVILEGE                                    ADM

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

RESOURCE CREATE SEQUENCE NO

RESOURCE CREATE TRIGGER NO

RESOURCE CREATE CLUSTER NO

RESOURCE CREATE PROCEDURE NO

RESOURCE CREATE TYPE NO

RESOURCE CREATE OPERATOR NO

RESOURCE CREATE TABLE NO

RESOURCE CREATE INDEXTYPE NO

已選擇8行。

7、scott使用者自己擁有多少的表

SQL>select * from user_tables;

另:select * from all_tables; 其他使用者所擁有的表
另:select * from dba_tables;資料庫中所有使用者的表

8、檢視scott使用者已經使用多大的空間,允許使用的最大空間是多少

SQL> select tablespace_name,bytes,max_bytes from user_ts_quotas;

另:select * from dba_ts_quotas;(所有的資料庫使用者在每個表空間已使用的空間,最大空間)

9、把自己的表賦予給其他使用者

SQL>grant select on emp to mzl;

檢視都把哪些表什麼許可權賦予了其他使用者

SQL>select * from user_tab_privs_made

10、把表的某一列操作許可權賦予給其他使用者

SQL>grant update(job) on emp to mzl;

 

注:檢視資料庫中所有的角色select * form. dba_roles;

1、sys授予scott使用者dba角色

SQL> conn /as sysdba

 已連線。

SQL> grant dba to scott;

授權成功。

另:如果這樣

SQL> grant dba to scott with admin option;

授權成功。

scott使用者就可以把dba的許可權授予給其他的使用者了。

2、sys回收scott使用者的dba角色

SQL> revoke dba from scott;

撤銷成功。

 

 

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-504123/,如需轉載,請註明出處,否則將追究法律責任。

相關文章