1、資料字典:
記錄了資料庫的系統資訊,它是唯讀表和視圖的集合,資料字典的所有使用者者為sys使用者。使用者只能在資料字典上執行查詢操作(select語句),而其維護與修改是由系統自動完成的。資料字典包括資料字典基表和資料字典視圖。
ORACLE中資料字典視圖分為3大類, 用首碼區別,分別為:USER,ALL 和 DBA,許多資料字典視圖包含相似的資訊。
USER_*:有關使用者所擁有的對象資訊,即使用者自己建立的對象資訊
ALL_*:有關使用者可以訪問的對象的資訊,即使用者自己建立的對象的資訊加上其他使用者建立的對象但該使用者有權訪問的資訊
DBA_*:有關整個資料庫中對象的資訊
2、查詢使用者對應表
1)用於顯示目前使用者所擁有的所有表,它只返回所對應方案的所有表
SQL>select table_name from user_tables;
2)用於顯示目前使用者可以訪問的所有表,它不僅會返回目前使用者方案的所有表,還會返回目前使用者可以訪問的其它方案的表。
SQL>select table_name from all_tables;
3)用於顯示所有方案擁有的資料庫表,但是查詢這種資料庫字典視圖,要求使用者必須是DBA角色或是有select any table系統許可權。
eg:當system使用者查詢資料字典視圖dba_tables時,會返回system、sys、scott···方案所對應的資料庫表。
SQL>conn system/manager;
SQL>select table_name from dba_tables;
3、使用者名稱、許可權、角色
1)顯示所有資料庫使用者的詳細資料
SQL>desc dba_users;
SQL>select username,password from dba_users;
2)顯示使用者具有的系統許可權
SQL> desc dba_sys_privs
SQL> select * from dba_sys_privs where grantee='DBA';
3)顯示使用者具有的對象許可權
SQL> desc dba_tab_privs
SQL> select * from dba_tab_privs where grantee='DBA'
4)顯示使用者所具有的角色
SQL> desc dba_sys_privs
SQL> select * from dba_role_privs where grantee='SCOTT';
具有CONNECT、RESOURCE角色,ADMIN_OPTION 不可派生
eg:
1)查詢某個使用者具有怎樣的角色
SQL> select * from dba_role_privs where grantee='使用者名稱';
2)查看某個角色包括哪些系統許可權
SQL> select * from dba_sys_privs where grantee='CONNECT';
或者
SQL> select * from role_sys_privs where role='CONNECT'
八種系統許可權(system privileges),沒有對象許可權(object privileges)
3)查看某個角色包括對象許可權
SQL> select * from dba_tab_privs where grantee='CONNECT';
4)查詢oracle中所有的角色,一般為DBA
SQL> select * from dba_roles;
如具有:CONNECT、RESOURCE、DBA等角色
5)查詢oracle中所有的系統許可權
SQL> select * from system_privilege_map order by name;
6)查詢oracle中所有對象許可權,一般是dba
SQL> select distinct privilege from dba_tab_privs;
7)查詢資料庫的資料表空間
SQL>select tablespace_name from dba_tablespaces;
8)顯示目前使用者可以訪問的所有資料字典視圖
SQL> select * from dict where comments like '%grant%';
9)顯示當前資料庫的全稱
SQL> select * from global_name;