开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開APP
          userphoto
          未登錄

          開通VIP,暢享免費電子書等14項超值服

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

          權(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)默認(rèn)將這個參數(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)限授予第三個人。默認(rè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; //默認(rèn)不可以將權(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ū)ο?;語句執(zhí)行是否成功;
          審計策略:默認(rèn)審計(實例啟動或關(guān)閉、Administrator權(quán)限)、Database審計(由DBA進(jìn)行enable<初始關(guān)閉>,不可以基于column值的記錄)、Value-based基于值或應(yīng)用程序?qū)徲嫞菏褂糜|發(fā)器。

          Database審計(默認(rèn)關(guān)閉):
          啟動database審計 >設(shè)定Audit option選項(表 AUDIT TABLE\觸發(fā)器 AUDIT create any trigger\select選項 AUDIT SELECT ON emi.orders\進(jìn)一步審計給予欄位的值則使用DBMS_FGA package) >一旦用戶發(fā)出相應(yīng)的command就會生成相關(guān)的審計記錄,該審計記錄可以記錄在OS中也可以記錄在Database中或默認(rèn)(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ù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
          打開APP,閱讀全文并永久保存 查看更多類似文章
          猜你喜歡
          類似文章
          初識!聊聊ORACLE的審計功能
          oracle學(xué)習(xí)筆記之索引、權(quán)限
          Oracle數(shù)據(jù)庫常用的操作命令(轉(zhuǎn)) - No One There MySpace聚友博...
          使用 Authid Current_User 為調(diào)用者授權(quán)
          建立物化視圖所需權(quán)限(二)
          MYSQL復(fù)習(xí)筆記(第五天)主要講SQL編程(存儲過程)!最后一天!
          更多類似文章 >>
          生活服務(wù)
          分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
          綁定賬號成功
          后續(xù)可登錄賬號暢享VIP特權(quán)!
          如果VIP功能使用有故障,
          可點擊這里聯(lián)系客服!

          聯(lián)系客服