隨筆 - 26  文章 - 2  trackbacks - 0
          <2011年9月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜


          管理權(quán)限和角色
          權(quán)限和角色的區(qū)別主要在哪里
          說(shuō)白了,用戶(hù)要操作數(shù)據(jù)庫(kù)的時(shí)候,需要有對(duì)應(yīng)的系統(tǒng)權(quán)限
          要操作方案的時(shí)候,需要有對(duì)應(yīng)的對(duì)象權(quán)限,為了簡(jiǎn)化管理,出現(xiàn)了角色


          圖解:


          系統(tǒng)權(quán)限:是指執(zhí)行特定類(lèi)型sql命令的權(quán)利。他用于控制用戶(hù)可以執(zhí)行的一個(gè)或是一組
          數(shù)據(jù)庫(kù)操作。比如,當(dāng)用戶(hù)具有了create
          table權(quán)限的時(shí)候,它就可以在其的方案中建表了。
          如果有create any table
          權(quán)限的時(shí)候,可以在其他方案中建表了。在oracle中大概有100多權(quán)限
          常用的有:
          create
          session 連接數(shù)據(jù)庫(kù)

          create view
          建視圖

          create procedure
          建過(guò)程、函數(shù)、包

          create cluster
          建族

          create table
          create public synonym 建同義詞
          create trigger 建立觸發(fā)器


          顯示系統(tǒng)權(quán)限
          查詢(xún)數(shù)據(jù)字典視圖system_privilege_map
          select * from
          system_privilege_map order by name;


          授予系統(tǒng)權(quán)限
          dba身份授予,如果帶有with admin
          option選項(xiàng),則被授予權(quán)限的用戶(hù)還可以給其他用戶(hù)授予權(quán)限
          例子:
          1、創(chuàng)建兩個(gè)用戶(hù)zqh1、zqh2
          conn
          system/manager;
          create user zqh1 indendified by 123;
          create user zqh2
          indendified by 321;
          這時(shí)兩個(gè)用戶(hù)登錄是登錄不了的
          2、給zqh1授權(quán)權(quán)限
          grant
          create session,create table to zqh1 with admin option;
          --------這意味zqh1可以給其他用戶(hù)繼續(xù)授權(quán)
          grant create view to
          zqh1;
          這時(shí)zqh1可以登錄了
          3、zqh1給zqh2授權(quán)
          conn
          zqh1/123;
          grant create session,create table to zqh2 with admin
          option;
          grant create view to zqh2;------------no ok!!!!


          回收系統(tǒng)權(quán)限
          使用revoke命令,注意系統(tǒng)權(quán)限的級(jí)聯(lián)回收問(wèn)題---【不是級(jí)聯(lián)回收】
          根據(jù)上面zqh1、zqh2
          system----------->zqh1---------------->zqh2
          現(xiàn)在用system執(zhí)行如下操作:
          revoke
          create session from zqh1;
          -------思考:zqh2還能登陸嗎?yes!!!
          ========================================================================


          對(duì)象權(quán)限:指訪問(wèn)其它方案對(duì)象的權(quán)限。比如zqh1用戶(hù)要訪問(wèn)scott.emp表,必須在emp表上
          具有對(duì)象權(quán)限
          常用的有:
          alter 
          delete  select  insert   update  index索引   reference 引用  execute執(zhí)行


          顯示對(duì)象權(quán)限
          可以顯示用戶(hù)或是角色所具有的對(duì)象權(quán)限,視圖dba_tab_privs
          conn
          system/manager;
          select distinct privilege from dba_tab_privs;
          select
          grantor ,owner,table_name,privilege from dba_tab_privs where grantee='BLAKE'


          授予對(duì)象權(quán)限
          對(duì)象權(quán)限可以授予用戶(hù)、角色和public。授予用戶(hù)的時(shí)候可以用with
          grant option
          但是授予
          角色的時(shí)候不可以用。
          1、monkey用戶(hù)操作scott.emp表,則必須授與相應(yīng)的對(duì)象權(quán)限
          conn
          system/manager as sysdba;
          create user monkey identified by 123;
          grant
          create session to monkey;
          conn monkey/123;
          select * from scott.emp;
          -------報(bào)錯(cuò),表或者視圖不存在
          -------------------------------------------------------------
          (1)monkey用戶(hù)查詢(xún)scott.emp表數(shù)據(jù),如何執(zhí)行?
          conn
          scott/tiger;
          grant select on emp to monkey;
          select * from
          scott.emp;
          (2)monkey用戶(hù)修改scott.emp表數(shù)據(jù),如何執(zhí)行?
          grant update emp to
          monkey;
          (3)monkey用戶(hù)刪除scott.emp表數(shù)據(jù),如何執(zhí)行?
          grant delete emp to
          monkey;
          (4)有沒(méi)有更加簡(jiǎn)單的方法,一次把所有權(quán)限賦給monkey?
          grant all on emp to monkey;


          2、能否對(duì)monkey訪問(wèn)權(quán)限更加精細(xì)控制
          (1)monkey只可以修改scott.emp的表的sal字段,怎么操作?
          grant
          update on emp(sal) to
          monkey;
          (2)monkey只可以查詢(xún)scott.emp的表的ename,sal數(shù)據(jù),怎么操作?
          grant select on
          emp(ename,sal) to monkey;


          3、授予alter權(quán)限
          monkey要修改scott.emp表的結(jié)果
          則必須授予alter對(duì)象權(quán)限
          conn
          scott/tiger;
          grant alter on emp to monkey;


          4、授予execute權(quán)限
          monkey想要執(zhí)行其他方案的包/過(guò)程/函數(shù),則須有execute權(quán)限
          conn
          system/manager;
          grant execute on dbms_transaction(包) to monkey;


          5、授予index權(quán)限
          想在別的方案的表上建立索引
          conn scott/tiger;
          grant
          index on scott.emp to monkey;


          6、使用with grant option選項(xiàng)
          conn scott/tiger;
          grant select
          on emp to monkey with grant option;


          回收對(duì)象權(quán)限
          對(duì)象的權(quán)限的回收是否會(huì)級(jí)聯(lián)收回呢?【yes!!!!】
          scott--------------->zqh1------------->zqh2
          conn
          scott/tiger@orcl
          revoke select on emp
          from zqh1; -------zqh2能否查詢(xún)scott.emp表【no!!!】


          總結(jié):關(guān)于級(jí)聯(lián)回收,系統(tǒng)權(quán)限沒(méi)有級(jí)聯(lián)回收,對(duì)象權(quán)限有級(jí)聯(lián)回收!!!!!


          角色:相關(guān)權(quán)限命令的集合,使用角色就是為了簡(jiǎn)化管理。
          分類(lèi):預(yù)定義和自定義角色兩類(lèi)


          預(yù)定義角色是oracle提供的角色,每種角色
          都用于執(zhí)行一些特定的管理任務(wù)。connect/resource/dba
          (1)connect角色具有的系統(tǒng)權(quán)限
          alter session
          create
          cluster
          create database link
          create session
          create table
          create view

          create sequence


          創(chuàng)建角色
          create role zqhrole not
          identified;


          角色授權(quán)
          conn system/manager;
          grant
          create session to zqhrole with admin option;----連接數(shù)據(jù)庫(kù)的授權(quán)
          conn scott/tiger@orcl;
          grant
          insert,update,delete on emp to zqhrole;-----提倡表是誰(shuí)的,由誰(shuí)給角色授權(quán)
          把角色分配給用戶(hù)
          conn system/manager;
          create user
          zqh3 identified by 123;
          grant zqhrole to zqh3 with admin option;
          zqh3登錄
          conn zqh3/123;
          select * from
          scott.emp;-------ok!!!!!


          刪除角色
          drop role 角色名
          問(wèn)題:
          假如zqhrole角色刪除了,那么zqh3還能登錄嗎????
          conn system/manager;
          drop role zqhrole;
          conn zqh3/123;【登不上去了!!!!!!】


          顯示角色信息:
          (1)顯示所有的角色
          select * from
          dba_roles;---------25個(gè)角色
          (2)顯示角色具有的系統(tǒng)權(quán)限
          select privilege,admin_option from
          roles_sys_privs where
          role='角色名';
          (3)顯示角色具有的對(duì)象權(quán)限
          查詢(xún)dba_tab_privs
          (4)顯示用戶(hù)具有的角色,及默認(rèn)角色
          查詢(xún)dba_role_privs
          select
          grant_role,default_role from dba_role_privs where grantee='用戶(hù)名';


          posted on 2011-09-28 13:20 Java_liyadong 閱讀(884) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 阿瓦提县| 香港| 遂宁市| 岗巴县| 蒙城县| 洛阳市| 丰镇市| 天等县| 青龙| 铁岭县| 含山县| 报价| 定兴县| 大田县| 枣庄市| 蓬莱市| 兴国县| 泌阳县| 松滋市| 东明县| 泰和县| 阿鲁科尔沁旗| 女性| 琼海市| 博乐市| 桂阳县| 齐齐哈尔市| 宜君县| 恩施市| 玛纳斯县| 隆安县| 张家口市| 玉溪市| 吕梁市| 涟水县| 蒙阴县| 新和县| 凉山| 苏尼特左旗| 中山市| 甘泉县|