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

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

    • 分享

      Oracle學(xué)習(xí)筆記(14)權(quán)限管理(

       憂郁_小剛 2011-05-20

      權(quán)限管理

       

      1、Oracle兩類型的用戶權(quán)限:
      System 使用戶在數(shù)據(jù)庫中完成部分行為
      Object 使用戶接觸和操作一個特定的數(shù)據(jù)對象。只有owner(Object Schema才能授權(quán))

       

      2、系統(tǒng)權(quán)限(100多種)
      其中,create table和create any table 的區(qū)別
      any關(guān)鍵字指示用戶在權(quán)限中可以操作任何schema. grant授權(quán),revoke 取消權(quán)限
      窗口1:
      sql>create user testuser1
          identified by kxf_001 default tablespace users
          quota 10m on users;

      sql>grant create table to testuser1;  //此權(quán)限只能給到自己創(chuàng)建一個表,而不能操作多張表

      窗口2:
      sql>conn testuser1/kxf_001;  //無法連接到Oracle
      窗口1:
      sql>grant create session to testuser1; //授權(quán)create session
      窗口2:
      sql>conn testuser1/kxf_001
      sql>create table test1(id int) tablespace users; //創(chuàng)建表

      sql>create table kong.tt1(id int) tablespace users; //權(quán)限不足
      窗口1:
      sql>grant create any table to testuser1;  //將“可以創(chuàng)建任何表”的權(quán)限給testuser1
      窗口2:
      sql>create table kong.tt1(id int) tablespace users;  //創(chuàng)建成功
      窗口1:
      sql>revoke create any table from testuser1;   //撤銷testuser1的權(quán)限create any table

      INDEX:CREATE ANY INDEX \ ALTER ANY INDEX \ DROP ANY INDEX
      TABLE:CREATE TABLE \ CREATE ANY TABLE\ALTER ANY TABLE\DROP ANY TABLE\ SELECT ANY TABLE\ UPDATE ANY TABLE \ DELETE ANY TABLE
      SESSION:CREATE SESSION\ ALTER SESSION\ RESTRICTED SESSION
      TABLESPACE:CREATE TABLESPACE\ ALTER TABLESPACE\ DROP TABLESPACE \ UNLIMITED TABLESPACE(無限空間資源的使用)
      【注意】沒有create index權(quán)限。如:

      grant system_privs,[....] to [user/role/public],[....] with admin option
      其中,with admin option 可以把權(quán)限授予第三個人


      sql>grant create index to testuser1;  //缺少或無效權(quán)限

      sql>truncate table kong.sales; 
      sql>grant truncate table to testuser1; //授予testuser1truncate table權(quán)限。
      sql>grant truncate any table to testuser1;

      sql>grant drop any table to testuser1;
      sql>grant create table,create session,create view to kong,testuser1; //授予多個用戶多個權(quán)限。

      sql>grant create table to public;  //授權(quán)create table給系統(tǒng)中所有用戶

      sql>create role testrole1   //創(chuàng)建角色1
      sql>create role testrole2;   //創(chuàng)建角色2
      sql>grant create table to testrole2; //為角色2添加create table權(quán)限。

      sql>create user testuser2 identified by kxf_001;
      sql>conn testuser1/xkf_001;
      sql>grant create table to testuser2; //權(quán)限不足,只允許testuser2創(chuàng)建表
      窗口2:
      sql>conn sys/admin1 as sysdba
      sql>grant create table to testuser1 with admin option; //授權(quán)create table給testuser1帶上管理權(quán)限。
      窗口1:
      sql>grant create table to testuser2; //授權(quán)成功

       

      3、系統(tǒng)權(quán)限(System Privileges)
      SYSDBA\SYSOPER 權(quán)限集合(特殊):實現(xiàn)database的管理和操作
      SYSOPER:startup、shutdown、alter database open|mount、alter database backup controlfile to(數(shù)據(jù)庫完整修復(fù)) 、recover database、alter database archivelog

      SYSDBA:sysoper privileges with admin option、create database、alter database begin/end backup、restricted session、recover database until

      注意:sysoper不能建立數(shù)據(jù)庫,不能完成數(shù)據(jù)庫的部分修復(fù),沒有受限(restricted)模式的權(quán)限,不具有備份權(quán)限。而sysdba具有sysoper所有的權(quán)限,同時帶上了admin選項。

      sql>grant sysdba to kong;  //為kong用戶授予管理員sysdba的權(quán)限
      sql>select * from v$pwfile_users;  //sysdba有權(quán)利查數(shù)據(jù)字典
      sql>grant sysoper to kong with admin option //為kong授予sysoper權(quán)限并帶上admin選項,其實kong已經(jīng)是sysdba,而sysdba具有sysoper的所有權(quán)限帶上了admin選項。

      O7_DICTIONARY_ACCESSIBILITY 參數(shù):數(shù)據(jù)字典表能不能存儲或被改變。
      sql>grant select any table to testuser1;
      sql>select * from sys.aud$;  //查詢系統(tǒng)審計表

      sql>show parameter O7  //O7_DICTIONARY_ACCESSIBILITY value=false
      sql>show user   //testuser1
      sql>select * from sys.aud$;  //審計記錄表(不能)

      sql>alter system set o7_dictionary_accessibility=true ;//設(shè)計對任意表操作的用戶能不能訪問到系統(tǒng)表的資料,一般來說系統(tǒng)默認將這個參數(shù)值設(shè)置為false,即系統(tǒng)審計記錄表不對普通用戶開放。
      sql>startup force  //強制重啟,讓數(shù)據(jù)庫打開
      窗口2:
      sql>conn testuser1/kxf_001; //已經(jīng)連接
      sql>select * from sys.aud$;  //審計記錄表(可以訪問)

      窗口1:
      sql>revoke create table,create any table from testuser1;//系統(tǒng)權(quán)限未授予testuser1

      sql>show user  //"sys"
      sql>revoke create table from testuser1;  //撤銷create table權(quán)限成功
      sql>revoke create any table from testuser1; //系統(tǒng)權(quán)限create any table未授予testuser1;

      sql>grant create session to testuser2;  //授予會話權(quán)限給testuser2
      sql>alter user testuser2 quota 10m on users; //在表空間users上給testuser2分配10m限額資源。

      sql>conn testuser2/kxf_001
      sql>create table tt1(id int) tablespace users;  //此時,testuser2仍然還有創(chuàng)建表的權(quán)限,在撤銷基于admin傳遞出的權(quán)限時,它是不會級聯(lián)的。

      注意:對象權(quán)限帶上admin option選項授予出去時是會級聯(lián)的。

       

      4、對象權(quán)限(Object Privileges)
      ALTER(Table\Sequence\Procedure)、DELETE(Table\View)、EXECUTE(Procedure)、INDEX(Table\View)、INSERT(Table\View)、PEFERENCES(Table)、SELECT(Table\View\Sequence)、UPDATE(Table\View)
      grant [object_privs(column,...)],[....]on object_name to user/role/public,....with grant option
      其中with grant option可以將權(quán)限授予第三個人。默認owner可以授權(quán)第三個人。

      GRANT EXECUTE ON dbms_output TO jeff;  //授予執(zhí)行某個存儲過程的權(quán)限
      GRANT UPDATE ON emi.customers TO jeff WITH GRANT OPTION;

      窗口1:
      sql>show user //"SYS"
      sql>select * from kong.authors;

      窗口2:
      sql>conn sys/admin1 as sysdba
      sql>set wrap off
      sql>set linesize 800
      sql>select * from kong.authors;
      sql>grant  select,update on kong.authors to testuser1; //默認不可以將權(quán)限授予第三個人

      sql>conn kong/kxf_001
      sql>grant select,update on kong.authors to testuser1;  //授權(quán)成功

      sql>grant select,update on kong.authors to sys with grant option; //sys也可以享有g(shù)rant授予權(quán)限。

      sql>conn sys/admin1 as sysdba
      sql>grant select,update on kong.authors to testuser1; //授權(quán)成功

      sql>conn kong/kxf_001
      sql>grant select on authors(au_id,au_lname) to testuser1; //授予testuser1查詢authors,缺少無效權(quán)限

      取消權(quán)限:
      REVOKE SELECT on emi.orders FROM jeff;
      sql>revoke select on authors from testuser1;

      注意:with grant option 取消權(quán)限應(yīng)該是級聯(lián)的。

      sql>grant select on authors to testuser1 with grant option

      sql>conn testuser1/kxf_001
      sql>select * from kong.authors;
      sql>grant select on kong.authors to testuser2;  //testuser1也可以將這個權(quán)限授出給testuser2

      sql>conn testuser2/kxf_001
      sql>select * from kong.authors; //testuser2也可以使用這個權(quán)限

      sql>conn kong/kxf_001
      sql>revoke select on authors from testuser1;  //取消testuser1的select權(quán)限。

      sql>conn kong/kxf_001
      sql>revoke select on authors from sys;// 取消sys的select 權(quán)限

      sql>conn testuser2/kxf_001
      sql>select * from kong.authors;  //此時,無法訪問testuser2的select 權(quán)限。

       

      5、獲取權(quán)限信息:
      DBA_SYS_PRIVS dba系統(tǒng)權(quán)限
      SESSION_PRIVS 會話權(quán)限
      DBA_TAB_PRIVS
      DBA_COL_PRIVS

      sql>conn sys/admin1 as sysdba
      sql>select * from dba_sys_privs ;//dba授了哪些權(quán)限給哪些人

      sql>conn testuser2/kxf_001
      sql>select * from session_privs; //當(dāng)前開的session里用戶擁有什么權(quán)限

      sql>conn kong/kxf_001
      sql>select * from user_tab_privs; //授予了哪些對象權(quán)限給哪些用戶

      sql>conn sys/admin1 as sysdba
      sql>select * from dba_col_privs;  // 授予了哪些欄位權(quán)限給哪些用戶

       

      6、審計Auditing
      審計規(guī)則:審計用戶、語句或?qū)ο螅徽Z句執(zhí)行是否成功;
      審計策略:默認審計(實例啟動或關(guān)閉、Administrator權(quán)限)、Database審計(由DBA進行enable<初始關(guān)閉>,不可以基于column值的記錄)、Value-based基于值或應(yīng)用程序?qū)徲嫞菏褂糜|發(fā)器。

      Database審計(默認關(guān)閉):
      啟動database審計 >設(shè)定Audit option選項(表 AUDIT TABLE\觸發(fā)器 AUDIT create any trigger\select選項 AUDIT SELECT ON emi.orders\進一步審計給予欄位的值則使用DBMS_FGA package) >一旦用戶發(fā)出相應(yīng)的command就會生成相關(guān)的審計記錄,該審計記錄可以記錄在OS中也可以記錄在Database中或默認(audit_trail=none)
      audit create table
            select/update/insert[on object]
       by session/by access
      whenever successful/not successful //可選,只記錄成功或失敗的,若不指定,則全部記錄

      其中:by session 發(fā)出相同command,只記錄一次
            by access  每發(fā)出一次command,記錄一次


      sql>show parameter audit_trail 跟蹤記錄 // value=db/os/none
      sql>audit select on kong.authors by session; //啟動kong.authors表的審計,只審計select動作。
      sql>audit create table; //審計create table動作

      sql>audit update on kong.authors whenever not successful; //只記錄不成功的update審計

      sql>desc dbms_fga;

       

      a.取消審計:noaudit
      sql>noaudit select on kong.authors;

       

      b.查看審計選項:
      ALL_DEF_AUDIT_OPTS  所有缺省的審計選項
      DBA_STMT_AUDIT_OPTS 所有語句的審計選項
      DBA_PRIV_AUDIT_OPTS 所有權(quán)限的審計選項
      DBA_OBJ_AUDIT_OPTS  所有數(shù)據(jù)對象的審計選項
       
      sql>select * from all_def_audit_opts;
      sql>select * from dba_stmt_audit_opts;
      sql>select * from dba_obj_audit_opts;

       

      c.如何獲取審計記錄:
      DBA_AUDIT_TRAIL、DBA_AUDIT_EXISTS、DBA_AUDIT_OBJECT、DBA_AUDIT_SESSION、DBA_AUDIT_STATEMENT

      sql>audit select on kong.authors /; 
      sql>conn kong/kxf_001
      sql>select * from authors;

      sql>conn sys/admin1 as sysdba
      sql>select * from dba_audit_trail; //對authors的審計操作都記錄在該dba_audit_trail中。

      sql>select * from dba_audit_object;
      sql>select * from dba_audit_session;

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多