深入淺出Oracle數(shù)據(jù)庫安全知識.ppt
《深入淺出Oracle數(shù)據(jù)庫安全知識.ppt》由會員分享,可在線閱讀,更多相關(guān)《深入淺出Oracle數(shù)據(jù)庫安全知識.ppt(24頁珍藏版)》請在裝配圖網(wǎng)上搜索。
,,,劉相兵(MacleanLiu)liu.maclean@,深入淺出Oracle數(shù)據(jù)庫安全知識(V1.0),,,,,,,,,,,,,,,,介紹,允許或禁止OracleDB中的用戶行為,包括其中的對象通過以下實現(xiàn):登錄身份驗證(Authentication),連接到數(shù)據(jù)庫訪問控制,訪問模式對象和數(shù)據(jù)(accesscontrol)審計,記錄用戶行為(audit),,,,,,,,,,,,,,,,,基礎(chǔ)身份驗證,數(shù)據(jù)庫管理員(以SYSDBA/SYSOPER)身份在DB之外被身份驗證操作系統(tǒng)身份驗證密碼文件身份驗證舉例來說sqlplus“/assysdba”登錄,OS用戶在Unix上為DBA組用戶,在Windows上是ORADBA組用戶普通數(shù)據(jù)庫用戶只能在數(shù)據(jù)庫啟動(alterdatabaseopen)后身份驗證并等登錄也可以采用OS身份驗證例如:createusermacleanidentifiedexternally.,,,,,,,,,,,,,,,,,基礎(chǔ)身份驗證,數(shù)據(jù)庫身份認證例如:createusermacleanidentifiedbyoracle;可以通過數(shù)據(jù)字典視圖來查看用戶信息DBA_USERSdescribesallusersofthedatabase.ALL_USERSListsusersvisibletothecurrentuser,butdoesnotdescribethemUSER_TS_QUOTASDescribestablespacequotasforusersV$SESSIONListssessioninformationforeachcurrentsession,includesusernamePROXY_USERSDescribesuserswhocanassumetheidentityofotherusersV$PWFILE_USERSlistsusersgrantedSYSDBAandSYSOPERprivilegesasderivedfromthepasswordfile,,,,,,,,,,,,,,,,,訪問控制,對象級別的安全(最小權(quán)限原則)通過對象權(quán)限通過角色數(shù)據(jù)級別的安全(細粒度訪問控制)-通過RLS(RowLevelSecurity),,,,,,,,,,,,,,,,,對象級別的安全控制,將自身擁有對象的權(quán)限顯示地授權(quán)給其他用戶,包括查詢和修改數(shù)據(jù)舉例來說:CONNMACLEAN/ORACLEGRANTSELECTONwallettohanna;角色(roles)是一組已被命名的權(quán)限,可以直接授權(quán)給用戶或者其他角色:舉例來說:CREATEROLEdeveloper;GRANTSELECTONwallet1todeveloper;GRANTINSERTONwallet1todeveloper;GRANTrole1tohanna;,,,,,,,,,,,,,,,,,對象級別的安全控制,內(nèi)核函數(shù)Kzpchkbu()負責完成為給定用戶檢查某個對象上權(quán)限的任務(wù)。該函數(shù)可能被多種路徑調(diào)用,以檢查對象上的必要權(quán)限。大致的算法如下:If檢查需要被授權(quán)的用戶是否對象的擁有者則返回授權(quán)驗證成功(表示不需要做權(quán)限檢查)Else該對象權(quán)限是否被授予了PUBLIC若是,則返回授權(quán)驗證成功Else檢查該用戶是否被顯示地授予了該對象權(quán)限或角色若是,則返回授權(quán)驗證成功Else檢查該用戶是否被顯示地授予了對應的系統(tǒng)權(quán)限若是,則返回授權(quán)驗證成功否則報錯,ORA_01031,ORA-00942,,,,,,,,,,,,,,,,,對象級別的安全控制,普通用戶訪問SYSschema下的對象?(越來越困難!)從9i開始,’ANY’權(quán)限無法訪問SYS用戶對象默認O7_DICTIONARY_ACCESSIBILITY=false,設(shè)置為TRUE可以讓’ANY’權(quán)限訪問SYS對象否則普通用戶必須顯示地擁有SYS對象的權(quán)限。,,,,,,,,,,,,,,,,,對象級別的安全控制,,,,常用數(shù)據(jù)字典視圖,幫助了解對象和系統(tǒng)權(quán)限的信息:-DBA_SYS_PRIVSdescribessystemprivilegesgrantedtousersandroles(USER_SYS_PRIVSforconnecteduser).-SESSION_PRIVSliststheprivilegesthatarecurrentlyavailabletotheuser.-SESSION_ROLESliststherolesthatarecurrentlyenabledtotheuser.-DBA_TAB_PRIVSdescribesallobjectgrantsinthedatabase.(USER_TAB_PRIVSforconnecteduser).,,,,,,,,,,,,,,,,數(shù)據(jù)級別的安全(RLS/VPD),,,,VirtualPrivateDatabase(VPD)有時候也叫做FineGrainedAccessControl(FGAC),亦即RowLevelSecurity(RLS),在Oracle8i中被引入;由于該特性是基于實際的數(shù)據(jù)內(nèi)容而非數(shù)據(jù)庫對象,因此被叫做RLS。僅在discretionaryaccesscontrol(DAC)滿足的情況下RLS生效,例如user1嘗試訪問user2所擁有的存在RLSpolicy的表,前提是在user2的表上有SELECT權(quán)限其內(nèi)部工作原理是透明地將SQL語句修改成基于預定義準則的臨時視圖。在運行時,謂詞會被附加到原查詢上以便過濾查詢所能看到的數(shù)據(jù),,,,,,,,,,,,,,,,數(shù)據(jù)級別的安全(RLS/VPD),,,,通過Oracle提供的標準DBMS_RLSPackage的過程來將表/視圖/同義詞等對象和策略關(guān)聯(lián)起來RLS策略包含一個PL/SQL函數(shù)以返回謂詞串,這個謂詞串會被在語句被執(zhí)行前被加入到查詢條件中例如::CONNECTscott/tigercreatetablet1(c1int);insertintot1values(10);insertintot1values(10);insertintot1values(20);insertintot1values(30);commit;,,,,,,,,,,,,,,,,數(shù)據(jù)級別的安全(RLS/VPD),,,,CREATEORREPLACEFUNCTIONfunc1(schema_nameVARCHAR2,table_nameVARCHAR2)RETURNVARCHAR2ISBEGINRETURNc1=10;END;/SQL>EXECDBMS_RLS.ADD_POLICY(scott,t1,pol1,scott,func1);PL/SQLproceduresuccessfullycompleted.SQL>select*fromt1;C1----------1010,,,,,,,,,,,,,,,,數(shù)據(jù)級別的安全(RLS/VPD),,,,內(nèi)核函數(shù)kzrtevw()完成為存在RLSpolicy的表/視圖/同義詞創(chuàng)建臨時視圖的工作在語義解析階段,從數(shù)據(jù)字典層kkmfcblo()調(diào)用kzrtevw()一個查詢語句”select*frommaclean”在語義解析階段被裝換為Select*from(select*frommacleanwheret1=10);^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^?臨時視圖kzrtevw()生成的臨時視圖會再次被硬解析hardparse,,,,,,,,,,,,,,,,數(shù)據(jù)級別的安全(RLS/VPD),,,,若存在參考完整性約束例如一張啟用了RLSPolicy的子表上有外鍵約束,RLS機制會檢查相關(guān)的父表上是否有RLSPolicy以判斷是否真的可以從父表上讀取數(shù)據(jù)以驗證約束。這通過內(nèi)核函數(shù)kzrtppg()完成,若無法從父表讀取到數(shù)據(jù),則報錯ORA-28117。[oracle@vrh8~]$oerrora2811728117,00000,"integrityconstraintviolated-parentrecordnotfound"http://*Cause:trytoupdate/insertachildrecordwithnewforeignkey//values,butthecorrespondingparentrowisnotvisible//becauseoffine-grainedsecurityintheparent.//*Action:makesurethattheupdatedforeignkeyvaluesmustalsovisibleintheparent,,,,,,,,,,,,,,,,數(shù)據(jù)級別的安全(RLS/VPD),,,,SYS對任何行級安全策略(RLS)均享有豁免權(quán)可以通過系統(tǒng)權(quán)限“EXEMPTACCESSPOLICY”讓普通用戶也對RLSPolicy豁免RLSpolicies相關(guān)的一些有用字典視圖:ALL_POLICIESdescribesthesecuritypoliciesonthesynonyms,tables,andviewsaccessibletothecurrentuser.DBA_POLICIESdescribesallsecuritypoliciesinthedatabase.USER_POLICIESdescribesthesecuritypoliciesonthesynonyms,tables,andviewsownedbythecurrentuser.,,,,,,,,,,,,,,,,Audit審計記錄用戶行為,,,,在部署安全措施后仍有發(fā)生惡意數(shù)據(jù)庫行為的可能性審計和記錄用戶行為可以發(fā)現(xiàn)各種可疑的或偽裝的惡意行為有助于進一步加強安全措施,,,,,,,,,,,,,,,,Audit審計記錄用戶行為,,,,Audit審計的種類強制審計:為每一次實例啟動寫出審計記錄到OS文件,shutdown以及權(quán)限登錄的記錄存放在$ORACLE_HOME/rdbms/audit目錄下(注意定期清理哦,親!)SYS審計:記錄SYSDBA/SYSOPER等權(quán)限用戶的操作,審計記錄存放在OS文件,SYSLOG中。標準審計:記錄用戶針對數(shù)據(jù)庫對象、語句、權(quán)限級別的行為。審計記錄可以存放在OS文件、XML文件或數(shù)據(jù)庫中(AUD$基表)對象級別審計權(quán)限級別審計語句級別審計細粒度控制:基于用戶訪問的數(shù)據(jù)記錄用戶行為。審計記錄存放在數(shù)據(jù)庫內(nèi)(FGA_LOG$)或者XML文件中。,,,,,,,,,,,,,,,,Audit審計記錄用戶行為,,,,示例審計文件:Auditfile/s01/admin/G10R25/adump/g10r25_ora_3724_1.audOracleDatabase10gEnterpriseEditionRelease10.2.0.5.0-64bitProductionWiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptionsORACLE_HOME=/s01/oracle/product/10.2.0.5/db_1Systemname:LinuxNodename:Release:2.6.32-200.13.1.el5uekVersion:#1SMPWedJul2721:02:33EDT2011Machine:x86_64Instancename:G10R25Redothreadmountedbythisinstance:1Oracleprocessnumber:15Unixprocesspid:3724,image:oracle@(TNSV1-V3)SatJul702:29:412012LENGTH:160ACTION:[7]CONNECTDATABASEUSER:[1]/PRIVILEGE:[6]SYSDBACLIENTUSER:[6]oracleCLIENTTERMINAL:[5]pts/0STATUS:[1]0DBID:[10]2652277393SatJul702:29:422012LENGTH:173ACTION:[19]ALTERDATABASEOPENDATABASEUSER:[1]/PRIVILEGE:[6]SYSDBACLIENTUSER:[6]oracleCLIENTTERMINAL:[5]pts/0STATUS:[1]0DBID:[10]2652277393SatJul702:29:462012LENGTH:172ACTION:[18]select*fromdualDATABASEUSER:[1]/PRIVILEGE:[6]SYSDBACLIENTUSER:[6]oracleCLIENTTERMINAL:[5]pts/0STATUS:[1]0DBID:[10]2652277393,,,,,,,,,,,,,,,,Audit審計記錄用戶行為,,,,內(nèi)核函數(shù)Kzasydmp()為強制的SYSDBA/SYSOPER審計寫出審計記錄到OS文件、SYSLOG或者XML文件在windows系統(tǒng)上,打印審計記錄到EventLog(DB_User,OS_Privilege,Client_User,Client_Termninal,Status,SQL_Text)在Unix平臺上若設(shè)置了AUDIT_SYSLOG_LEVEL,審計記錄發(fā)送給syslog這個后臺服務(wù)否則生成一個審計文件_.aud,,,,,,,,,,,,,,,,Audit審計記錄用戶行為,,,,對象級別的審計例如:AUDITSELECTONMACLEAN.TEST;語句級別的審計例如:AUDITCREATETABLEBYMACLEAN;權(quán)限級別的審計例如:AUDITSELECTANYTABLEBYMACLEAN;,,,,,,,,,,,,,,,,Audit審計記錄用戶行為,,,,部分標準審計選項:AUDITBYSESSION—針對用戶和會話例如:AUDITSELECTONMACLEAN.TABBYSESSION;AUDITBYACCESS—針對每一個可審計的操作例如:AUDITSELECTONMACLEAN.TABBYACCESS;AUDITWHENEVERSUCCESSFUL—僅審計執(zhí)行成功的操作例如:AUDITCONNECTWHENEVERSUCCESSFUL;AuditWHENEVERNOTSUCCESSFUL—僅審計執(zhí)行失敗的操作例如:AUDITCONNECTWHENEVERNOTSUCCESSFUL,,,,,,,,,,,,,,,,Audit審計記錄用戶行為,,,,細粒度審計FineGrainedAuditing(FGA)FGA策略通過DBMS_FGA包與表/視圖/同義詞關(guān)聯(lián)起來例如:beginDBMS_FGA.ADD_POLICY(object_schema=>scott,object_name=>emp,policy_name=>mypolicy1,audit_condition=>salcomm,sal,handler_schema=>NULL,handler_module=>NULL,enable=>TRUE,statement_types=>INSERT,UPDATE,audit_trail=>DBMS_FGA.XML+DBMS_FGA.EXTENDED,audit_column_opts=>DBMS_FGA.ANY_COLUMNS);end;,,,,,,,,,,,,,,,,Audit審計記錄用戶行為,,,,標準審計:audsucc()/audfail()是審計的主要入口,針對成功/不成功的審計操作會進一步調(diào)用auddft()例如maclean用戶下的test表為成功操作審計…->opiexe()->audsucc()->auddft()->audsel()->audfro()…auddft()判斷行為代碼決定合適的審計路徑audsel()調(diào)用audfro(),記錄審計鏈上的信息audfro()首先設(shè)置已使用的對象權(quán)限,進一步檢查該對象相關(guān)的審計選項,例如到底這個對象是auditbyaccess還是bysession。Byaccess調(diào)用audins(),Bysession調(diào)用audses(),,,,,,,,,,,,,,,,Audit審計記錄用戶行為,,,,啟動審計必要的Init.ora實例初始化參數(shù)AUDIT_TRAIL={none|os|db|db,extended|xml|xml,extended}.AUDIT_SYS_OPERATIONSOracle9i以后版本中通過設(shè)置該參數(shù)為TURE可以記錄不限于CONNECT,STARTUP,SHUTDOWN的以SYSDBA或SYSOPER進行的操作。AUDIT_FILE_DEST指定審計目錄(默認為$ORACLE_BASE/admin/$SID/adump)一些有用的字典視圖:DBA_AUDIT_POLICIES–ListsFGApoliciesinthedatabase.DBA_AUDIT_TRAIL–Listsallaudittrailentries.DBA_AUDIT_OBJECT-Listsaudittrailrecordsforallobjectsinthedatabase.DBA_FGA_AUDIT_TRAIL-Listsallauditrecordsforfine-grainedauditing.DBA_COMMON_AUDIT_TRAIL-Listsallstandardandfine-grainedaudittrailentries,mandatoryandSYSauditrecordswritteninXMLformat.,- 1.請仔細閱讀文檔,確保文檔完整性,對于不預覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 深入淺出 Oracle 數(shù)據(jù)庫 安全 知識
鏈接地址:http://www.hcyjhs8.com/p-3418203.html