Oracle 10g的使用者 許可權和角色

2021-05-24 14:49:47 字數 2024 閱讀 9030

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這個角色是用於執行sql auto trace的, 通過執行

$oracle_home/sqlplus/admin/plustrce.sql可以生成這個角色.

當建立乙個角色,為其grant許可權時,加上了with admin option

那麼擁有此許可權的使用者便可以grant相應的許可權給其他使用者

而不能grant角色給其他使用者,如果想要grant角色給其他使用者

必須在grant role_name to user_name時,加上with admin option

(即: grant role_name to user_name with admin option)

Oracle10g許可權管理

b size medium 1 建立使用者 預設只有sys和system使用者有此許可權 size b create user username identified by password size medium b 2 刪除使用者 b size drop user username size m...

oracle10g建立使用者

doctype html public wcdtd xhtml stricten httpwwwworgtrxhtmldtdxhtml strictdtd oracle10g的建立使用者名稱 linux下oracle的啟動 以oracle身份登入 啟動 lsnrctl start 登入 sqplus...

Oracle 10g建立使用者和表空間

建立資料表空間 create tablespace yycg0213 logging datafile c oracle product 10.2.0 oradata orcl yycg0213.dbf size 32m autoextend on next 32m maxsize 2048m ex...