角色就是相關許可權的命令集合,使用角色的主要目的就是為了簡化許可權的管理,方便進行許可權的批量授權。
角色分為預定義和自定義角色兩類。
一、預定義角色
預定義角色是指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...