小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

oracle學(xué)習(xí)筆記之角色

 levinLee 2010-07-27

十五:角色

介紹
角色就是相關(guān)權(quán)限的命令集合,使用角色的主要目的就是為了簡化權(quán)限的管理,假定有用戶a,b,c為了讓他們都擁有權(quán)限
1.
連接數(shù)據(jù)庫
2.
scott.emp表上selectinsert,update。
如果采用直接授權(quán)操作,則需要進(jìn)行12次授權(quán)。
因為要進(jìn)行12次授權(quán)操作,所以比較麻煩喔!怎么辦?

 
如果我們采用角色就可以簡化:
 
首先將creat sessionselect on scott.empinsert on scott.emp, update on scott.emp授予角色,然后將該角色授予a,bc用戶,這樣就可以三次授權(quán)搞定。
 
角色分為預(yù)定義和自定義角色兩類:
 
預(yù)定義角色
預(yù)定義角色是指oracle所提供的角色,每種角色都用于執(zhí)行一些特定的管理任務(wù),下面我們介紹常用的預(yù)定義角色connect,resourcedba
1.connect
角色
connect
角色具有一般應(yīng)用開發(fā)人員需要的大部分權(quán)限,當(dāng)建立了一個用戶后,多數(shù)情況下,只要給用戶授予connectresource角色就夠了,那么connect角色具有哪些系統(tǒng)權(quán)限呢?
alter session
create cluster
create  database link
create session
create table
create view
create sequence

2.resource
角色
  resource
角色具有應(yīng)用開發(fā)人員所需要的其它權(quán)限,比如建立存儲過程,觸發(fā)器等。這里需要注意的是resource角色隱含了unlimited tablespace系統(tǒng)權(quán)限。
resource
角色包含以下系統(tǒng)權(quán)限:
create cluster
create indextype
create table
create sequence
create type
create procedure
create trigger
3.dba
角色
dba
角色具有所有的系統(tǒng)權(quán)限,及with admin option選項,默認(rèn)的dba用戶為syssystem,它們可以將任何系統(tǒng)權(quán)限授予其他用戶。但是要注意的是dba角色不具備sysdbasysoper的特權(quán)(啟動和關(guān)閉數(shù)據(jù)庫)。

 
自定義角色
顧名思義就是自己定義的角色,根據(jù)自己的需要來定義。一般是dba來建立,如果用別的用戶來建立,則需要具有create role的系統(tǒng)權(quán)限。在建立角色時可以指定驗證方式(不驗證,數(shù)據(jù)庫驗證等)。
1.
建立角色(不驗證)
如果角色是公用的角色,可以采用不驗證的方式建立角色。
  create role
角色名 not identified;
2.
建立角色(數(shù)據(jù)庫驗證)
 
采用這樣的方式時,角色名、口令存放在數(shù)據(jù)庫中。當(dāng)激活該角色時,必須提供口令。在建立這種角色時,需要為其提供口令。
create role
角色名 identified by 密碼;

   
角色授權(quán)
當(dāng)建立角色時,角色沒有任何權(quán)限,為了使得角色完成特定任務(wù),必須為其授予相應(yīng)的系統(tǒng)權(quán)限和對象權(quán)限。
1.
給角色授權(quán)
 
給角色授予權(quán)限和給用戶授權(quán)沒有太多區(qū)別,但是要注意,系統(tǒng)權(quán)限的unlimited tablespace和對象權(quán)限的with grant option選項是不能授予角色的。
SQL> conn system/manager;
SQL> grant create session to
角色名 with admin option
SQL> conn scott/tiger@myoral;
SQL> grant select on scott.emp to
角色名;
SQL> grant insert, update, delete on scott.emp to
角色名;
通過上面的步驟,就給角色授權(quán)了。
2.
分配角色給某個用戶
 
一般分配角色是由dba來完成的,如果要以其它用戶身份分配角色,則要求用戶必須具有grant any role的系統(tǒng)權(quán)限。
SQL> conn system/manager;
SQL> grant
角色名 to blake with admin option;
因為我給了with admin option選項,所以,blake可以把system分配給它的角色分配給別的用戶。

 
刪除角色
 
使用drop role,一般是dba來執(zhí)行,如果其它用戶則要求該用戶具有drop any role系統(tǒng)權(quán)限。
SQL> conn system/manager;
SQL> drop role
角色名;
問題:如果角色被刪除,那么被授予角色的用戶是否還具有之前角色里的權(quán)限?
答案:不具有了

 
顯示角色信息
1.
顯示所有角色
SQL> select * from dba_roles;
2.
顯示角色具有的系統(tǒng)權(quán)限
SQL> select privilege, admin_option from role_sys_privs where role='
角色名';
3.
顯示角色具有的對象權(quán)限
 
通過查詢數(shù)據(jù)字典視圖dba_tab_privs可以查看角色具有的對象權(quán)限或是列的權(quán)限。
4.
顯示用戶具有的角色,及默認(rèn)角色
 
當(dāng)以用戶的身份連接到數(shù)據(jù)庫時,oracle會自動的激活默認(rèn)的角色,通過查詢數(shù)據(jù)字典視圖dba_role_privs可以顯示某個用戶具有的所有角色及當(dāng)前默認(rèn)的角色
SQL> select granted_role, default_role from dba_role_privs where grantee = ‘
用戶名’;

 
精細(xì)訪問控制
 
精細(xì)訪問控制是指用戶可以使用函數(shù),策略實現(xiàn)更加細(xì)微的安全訪問控制。如果使用精細(xì)訪問控制,則當(dāng)在客戶端發(fā)出sql語句(select,insertupdate,delete)時,oracle會自動在sql語句后追加謂詞(where子句),并執(zhí)行新的sql語句,通過這樣的控制,可以使得不同的數(shù)據(jù)庫用戶在訪問相同表時,返回不同的數(shù)據(jù)信息,如:
用戶 scott    blake     jones
策略   emp_access

數(shù)據(jù)庫表 emp
如上圖所示,通過策略emp_access,用戶scott,black,jones在執(zhí)行相同的sql語句時,可以返回不同的結(jié)果。例如:當(dāng)執(zhí)行select ename from emp; 時,根據(jù)實際情況可以返回不同的結(jié)果。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多