oracle查詢使用者許可權
2009-06-22 16:54
資料字典
1、動態資料字典是以v$***開始的資料字典,在資料庫中約有150個左右,這些資料字典反映資料庫動態執行狀況,在不同時間查詢會得到不同的結果。
2、dba資料字典是以dba_***表示,該資料字典儲存資料庫結構,查詢dba資料字典可以反映資料庫結構設定,管理磁碟空間和表空間、事務與回退段、使用者與表空間等資訊。
3、使用者資料字典是以user_***表示,這些資料字典反應使用者所建立的實體資訊。如,user_tables、user_views,資料庫管理員具有操作全體使用者所有實體的許可權,可以查詢這類資料字典,了解使用者所建立實體狀況,必要時可以將使用者建立的不正確的實體刪除。
4、all_***類資料字典,表示使用者所建立的實體及使用者有權可以訪問的實體。
select privilege from dba_sys_privs where grantee=『username』轉
-- 確定角色的許可權
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_***, all_***,user_*** 讓人一看大概就知道這個檢視是幹什麼用的. 本文簡要總結了一下與許可權,角色相關的檢視.
一. 概述
與許可權,角色相關的檢視大概有下面這些:
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='***'
(需要當前使用者擁有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這個角色是用於執行sqlauto 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';
Oracle查詢使用者許可權
oracle查詢使用者許可權 資料字典 1 動態資料字典是以v 開始的資料字典,在資料庫中約有150個左右,這些資料字典反映資料庫動態執行狀況,在不同時間查詢會得到不同的結果。2 dba資料字典是以dba 表示,該資料字典儲存資料庫結構,查詢dba資料字典可以反映資料庫結構設定,管理磁碟空間和表空間...
Oracle查詢使用者許可權
資料字典 1 動態資料字典是以v 開始的資料字典,在資料庫中約有150個左右,這些資料字典反映資料庫動態執行狀況,在不同時間查詢會得到不同的結果。2 dba資料字典是以dba 表示,該資料字典儲存資料庫結構,查詢dba資料字典可以反映資料庫結構設定,管理磁碟空間和表空間 事務與回退段 使用者與表空間...
oracle使用者許可權的查詢
oracle中檢視使用者許可權 1.檢視所有使用者 select from dba users select from all users select from user users 2.檢視使用者或角色系統許可權 直接賦值給使用者或角色的系統許可權 select from dba sys pri...