Oracle角色詳解

2021-06-27 03:42:12 字數 2627 閱讀 8112

一、概述

角色就是相關許可權的命令集合,使用角色的主要目的就是為了簡化許可權的管理。假定有使用者a,b,c為了讓他們都擁有許可權

1、連線資料庫

2、在scott.emp表上select,insert,update

如果採用直接授權操作,則需要進行12次授權。

如果採用角色就可以簡化

首先將create session,select on scott.emp,insert on scott.emp,update on scott.emp授予角色,然後將該角色授予a,b,c使用者,這樣就可以三次授權搞定。角色分為預定義角色和自定義角色兩類。

二、預定義角色

預定義角色是指oracle所提供的角色,每種角色都用於執行一些特定的管理任務,下面我們介紹常用的預定義角色connect,resource,dba。

1、connect角色

connect角色具有一般應用開發人員需要的大部分許可權,當建立了乙個使用者後,多數情況下,只要給使用者授予connect和resource角色就夠了,那麼connect角色具有以下系統許可權:

alter session

create cluster

create database link

create session

create view

create sequence

2、resource角色

resource角色具有應用開發人員所需要的其他許可權,比如建立儲存過程、觸發器等。這裡需要注意的是resource角色隱含了unlimited tablespace系統許可權。

resource角色包含以下系統許可權:

create cluster

create indextype

create table

create sequence

create type

create procedure

create trigger

3、dba角色

dba角色具有所有的系統許可權,及with admin option選項,預設的dba使用者為sys和system他們可以將任何系統許可權授予其他使用者。但是要注意的是dba角色不具備sysdba和sysoper的特權(啟動和關閉資料庫)。

三、自定義角色

顧名思義就是自己定義的角色,根據自己的需要來定義,一般是dba來建立,如果用的別的使用者來建立,則需要具有create role的系統許可權,在建立角色時可以指定驗證方式(不驗證,資料庫驗證等)。

1、建立角色(不驗證)

如果角色是公用的角色,可以採用不驗證的方式建立角色

sql>create role 角色名 not identified;

2、建立角色(資料庫驗證)

採用這樣的方式時,角色名、口令存放在資料庫中,當啟用該角色時,必須提供口令。在建立這種角色時,需要為其提供口令。

create role 角色名 identified by tiger;

3、角色授權

當建立角色時,角色沒有任何許可權,為了使得角色完成特定任務,必須為其授予相應的系統許可權和物件許可權。

給角色授權

給角色授予許可權和給使用者授權沒有太多的區別,但是要注意,系統許可權的unlimited tablespace對物件許可權with grant option選項是不能授予角色的。

sql>conn system/manager;

sql>grant create session to 角色名 with admin option;

sql>conn scott/tiger;

sql> grant select on scott.emp to 角色名;

sql>grant insert,update,delete on scott.emp to 角色名;

通過上面的步驟,就給角色授權了。

4、分配角色給某個使用者

一般分配角色是由dba來完成的,如果要以其他使用者身份分配角色,則要求使用者必須具有grant any role的系統許可權。

sql>grant 角色名 to blake with admin option;

因為我給了with admin option選項,所以,blake可以把system分配給它的角色分配給別的使用者。

5、刪除角色

使用drop role,一般是dba來執行的,如用其他使用者則要求該使用者具有drop any role系統許可權。

sql>drop role 角色名;

6、顯示角色資訊

(1)顯示所有角色

sql>select * from dba_roles;

(2)顯示角色具有的系統許可權

sql>select privilege,admin_option from role_sys_privs where role='角色名';

(3)顯示角色具有的物件許可權

通過查詢資料字典檢視dba_tab_privs可以檢視角色具有的物件許可權或是列的許可權。

(4)顯示使用者具有的角色及預設角色

當以使用者的身份連線到資料庫時,oracle會自動的啟用預設的角色,通過查詢資料字典檢視dba_role_privs可以顯示某個使用者具有的所有角色及當前預設的橘色。

sql>select granted_role,default_role from dba_role_privs where grantee='使用者名稱';

**:

oracle角色管理

建立角色 create role jsx admin identified by admin create role jsx query identified by query 為角色授權 grant create session to jsx admin grant insert,update,d...

十八 oracle 角色

一 介紹 角色就是相關許可權的命令集合,使用角色的主要目的就是為了簡化許可權的管理。假定有使用者a,b,c為了讓他們都擁有如下許可權 1.連線資料庫 2.在scott.emp表上select,insert,update。如果採用直接授權操作,則需要進行12次授權。因為要進行12次授權操作,所以比較麻...

十八 oracle 角色

一 介紹 角色就是相關許可權的命令集合,使用角色的主要目的就是為了簡化許可權的管理。假定有使用者a,b,c為了讓他們都擁有如下許可權 1.連線資料庫 2.在scott.emp表上select,insert,update。如果採用直接授權操作,則需要進行12次授權。因為要進行12次授權操作,所以比較麻...