乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       levinLee 2010-07-27

      十五:角色

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

       
      如果我們采用角色就可以簡(jiǎn)化:
       
      首先將creat session,select on scott.emp,insert on scott.emp, update on scott.emp授予角色,然后將該角色授予a,b,c用戶,這樣就可以三次授權(quán)搞定。
       
      角色分為預(yù)定義和自定義角色兩類:
       
      預(yù)定義角色
      預(yù)定義角色是指oracle所提供的角色,每種角色都用于執(zhí)行一些特定的管理任務(wù),下面我們介紹常用的預(yù)定義角色connect,resource,dba
      1.connect
      角色
      connect
      角色具有一般應(yīng)用開發(fā)人員需要的大部分權(quán)限,當(dāng)建立了一個(gè)用戶后,多數(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)限,比如建立存儲(chǔ)過程,觸發(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選項(xiàng),默認(rèn)的dba用戶為syssystem,它們可以將任何系統(tǒng)權(quán)限授予其他用戶。但是要注意的是dba角色不具備sysdbasysoper的特權(quán)(啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù))。

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

         
      角色授權(quán)
      當(dāng)建立角色時(shí),角色沒有任何權(quán)限,為了使得角色完成特定任務(wù),必須為其授予相應(yīng)的系統(tǒng)權(quán)限和對(duì)象權(quán)限。
      1.
      給角色授權(quán)
       
      給角色授予權(quán)限和給用戶授權(quán)沒有太多區(qū)別,但是要注意,系統(tǒng)權(quán)限的unlimited tablespace和對(duì)象權(quán)限的with grant option選項(xiàng)是不能授予角色的。
      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.
      分配角色給某個(gè)用戶
       
      一般分配角色是由dba來完成的,如果要以其它用戶身份分配角色,則要求用戶必須具有grant any role的系統(tǒng)權(quán)限。
      SQL> conn system/manager;
      SQL> grant
      角色名 to blake with admin option;
      因?yàn)槲医o了with admin option選項(xiàng),所以,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.
      顯示角色具有的對(duì)象權(quán)限
       
      通過查詢數(shù)據(jù)字典視圖dba_tab_privs可以查看角色具有的對(duì)象權(quán)限或是列的權(quán)限。
      4.
      顯示用戶具有的角色,及默認(rèn)角色
       
      當(dāng)以用戶的身份連接到數(shù)據(jù)庫(kù)時(shí),oracle會(huì)自動(dòng)的激活默認(rèn)的角色,通過查詢數(shù)據(jù)字典視圖dba_role_privs可以顯示某個(gè)用戶具有的所有角色及當(dāng)前默認(rèn)的角色
      SQL> select granted_role, default_role from dba_role_privs where grantee = ‘
      用戶名’;

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

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

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

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多