oracle高階 角色

2021-09-11 11:17:20 字數 3055 閱讀 5932

角色就是相關許可權的命令集合,使用角色的主要目的就是為了簡化許可權的管理,方便進行許可權的批量授權

角色分為預定義自定義角色兩類。

一、預定義角色

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

1.connect角色

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

alter session

create cluster

create  database link

create session

create table

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.建立角色(不驗證)

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

create role 角色名 not identified;

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

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

create role 角色名 identified by 密碼;

3.為角色授權

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

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

示例:

conn system/123456;

grant create session to 角色名 with admin option

conn scott/123456;

grant select on scott.emp to 角色名;

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

通過上面的步驟,就給角色授予系統許可權(create session)和物件許可權(scott使用者下emp表的insert, update, delete)。

4.將角色分配給某個使用者

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

示例:

conn system/123456;

grant 角色名 to graykey with admin option;

通過上面的步驟,將角色分配給了使用者graykey,因為給了with admin option選項,所以,使用者graykey可以把system分配給它的角色分配給別的使用者。

5.刪除角色

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

示例:

conn system/123456;

drop role 角色名;

問題:如果角色被刪除,那麼被授予角色的使用者是否還具有之前角色裡的許可權?

答案:不具有了

6.顯示角色資訊

-- 顯示所有角色

select * from dba_roles;

-- 顯示角色具有的系統許可權

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

-- 顯示角色具有的物件許可權

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

select * from dba_tab_privs;

-- 顯示使用者具有的角色,及預設角色

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

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

oracle高階三(索引 許可權,角色)

oracle高階三 索引 許可權,角色 索引加速資料的訪問,合理的使用索引可以大大降低i o 的次數,提高訪問的效能單列索引 基於單個列所建立的索引 create index 索引名 on 表名 列名 復合索引 基於多個列的索引,同乙個表可以有多個索引,但是要求列的組合必須不能,意思就是不能對於相同...

ansible 劇本高階 角色

ansible cache m setup ansible all ipv4 addresses ipv4的所有位址 ansible all ipv6 addresses ipv6的所有位址 ansible date time 獲取到控制節點時間 ansible default ipv4 預設的ip...

Oracle角色詳解

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