Oracle查詢使用者許可權

2021-08-26 07:11:56 字數 3986 閱讀 8672

資料字典

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查詢使用者許可權

oracle查詢使用者許可權 2009 06 22 16 54 資料字典 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...