熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle安全全程接觸(完整版)二

2022-06-13   來源: Oracle 

  ()SQL*PLUS編程用戶的規范
  
  ·存儲結構的規范
  
  考慮到用SQL*PLUS編程可實現各行各業各公司各部門多種多樣的應用需求我們的SQL*PLUS編程用戶也應該朝這個方向規范:不同種類的應用必須有不同的用戶;不同種類的應用必須有不同的存儲位置包括物理文件缺省表空間臨時表空間的創建和規劃:當准備編寫某一較大規模(從ORACLE數據量和面向用戶量考慮)應用程序時首先應該創建一個邏輯的存儲位置表空間同時定義物理文件的存放路徑和所占硬盤的大小
  
  ①物理文件缺省的存放路徑在/oracle_home/dbs下在命令行下用UNIX指令df k 可查看硬盤資源分區的使用情況如果oracle_home使用率達‰以上而且有一個或多個較為空閒的硬盤資源分區可以利用我們最好把物理文件缺省的存放路徑改到較為空閒的硬盤資源分區路徑下在此路徑下我們可以這樣規劃資源物理文件的存儲:
  
  xxx表空間
  
  xxx行業/ xxx公司/ xxx 部門/ xxx 服務dbf
  
  DEMO表空間
  
  default_datafile_home/col /elec/sys/demodbf
  
  default_datafile_home/col /elec/sys/demodbf
  
  公司系統四部摹擬演示系統物理文件
  
  HUMAN表空間
  
  default_datafile_home/col/elec/human/humandbf
  
  公司人事部人事管理系統物理文件
  
  BOOK表空間
  
  default_datafile_home/col/elec/book/bookdbf
  
  公司資料室圖書管理系統物理文件
  
  QUESTION表空間
  
  default_datafile_home/col/elec/client/questiondbf
  
  公司客戶服務部問題庫系統物理文件
  
  PC表空間
  
  default_datafile_home/col/chaoxun/client/pcdbf
  
  公司PC機售後服務系統物理文件
  
  ……表空間
  
  default_datafile_home/……………………………
  
  等等
  
  說明:其中default_datafile_home指oracle_home/dbs;
  
  default_datafile_home指較為空閒的硬盤資源分區路徑
  
  ②物理文件的大小根據應用系統的數據量數據對象程序包的多少來定一般用於摹擬演示的小系統表空間初始的物理文件為M即能滿足要求如果信息量滿還可以增加物理文件擴充表空間(每次擴充大小也可暫定為M);一般實際運行的應用系統可適當增加表空間初始的物理文件大小但也不要一次分配太大(因為不易回收空間卻易擴充空間)這也需要根據具體情況具體分析:信息量大需長時間保存的應用在條件允許情況下表空間可以大到幾百M甚至上G;信息量小短期經常刷新的應用表空間可以控制在M以下
  
  ③表空間的名稱應該采用同系統應用相似的英文字符或字符縮寫表空間所對應的一個或多個物理文件名也應有相關性不同用戶所處的缺省表空間不同存儲的信息就不能互相訪問這比把所有用戶信息都儲存在系統表空間安全性大大提高了如果用ORACLE WEB SERVER管理端口創建的用戶其缺省和臨時表空間一定是系統表空間DBA切記要改變用戶的缺省表空間臨時表空間存放臨時數據段處理一些排序合並等中間操作根據實際應用的需求可以把它們放在專門創建的表空間裡;如果系統表空間大也可以把它們放在系統表空間用戶創建的數據索引最好和數據文件分開存放在不同表空間以減少數據爭用和提高響應速度
  
  ·密碼和用戶名的規范
  
  有相當數量的ORACLE用戶名和密碼一致這是個很不安全的因素我們建議ORACLE用戶名和密碼一定不要一樣密碼最好在五六位字符以上不同用戶間不應該使用相同的密碼用戶名的定義可根據實際應用的英文名來設而依據編程人員的姓名定義的用戶名實際上不規范可在日後的工作中結合上述有關存儲結構規范的說明逐步改進
  
  ()特殊要求用戶的規范
  
  在ORACLE數據庫使用過程中還會遇到一些有特殊要求的用戶:非編程人員需要對某個表有查詢增加刪除修改的權利DBA應創建一個這樣的用戶先確定用戶名和密碼再規定相關應用所在缺省表空間(包含某個表)和臨時表空間最後TABLE屬主給其授權:賦予CONNECT角色SELECTINSERTDELETEUPDATE ON THE TABLE的對象級權限這可根據實際需求自由取捨
  
  舉例:●給新用戶授於對象級權限(命令行方式):
  
  假設新用戶NEW需要有查詢刪除修改DCD用戶的表EMP
  
  %svrmgrl
  
  SVRMGR>connect internal; 以系統管理員登錄
  
  SVRMGR>create user new identified by new default tablespace app;
  
  SVRMGR>connect dcd/dcdpwd; 以dcd用戶登錄
  
  SVRMGR>grant connect to new;
  
  SVRMGR>grant select on emp to new;
  
  SVRMGR>grant delete on emp to new;
  
  SVRMGR>grant update on emp to new;
  
  說了這麼多關於用戶的問題那麼接下來我們就詳細得說一下關於密碼文件的使用以及維護在Oracle數據庫系統中用戶如果要以特權用戶身份(INTERNAL/SYSDBA/SYSOPER)登錄Oracle數據庫可以有兩種身份驗證的方法:即使用與操作系統集成的身份驗證或使用Oracle數據庫的密碼文件進行身份驗證因此管理好密碼文件對於控制授權用戶從遠端或本機登錄Oracle數據庫系統執行數據庫管理工作具有重要的意義
  
  Oracle數據庫的密碼文件存放有超級用戶INTERNAL/SYS的口令及其他特權用戶的用戶名/口令它一般存放在ORACLE_HOME\DATABASE目錄下
  
  ·密碼文件的創建:
  
  在使用Oracle Instance Manager創建一數據庫實例的時侯在ORACLE_HOME\DATABASE目錄下還自動創建了一個與之對應的密碼文件文件名為PWDSIDORA其中SID代表相應的Oracle數據庫系統標識符此密碼文件是進行初始數據庫管理工作的基礎在此之後管理員也可以根據需要使用工具ORAPWDEXE手工創建密碼文件命令格式如下:
  
  C:\ >ORAPWD FILE=< FILENAME > PASSWORD =< PASSWORD > ENTRIES=< MAX_USERS >
  
  各命令參數的含義為:
  
  FILENAME:密碼文件名;
  
  PASSWORD:設置INTERNAL/SYS帳號的口令;
  
  MAX_USERS:密碼文件中可以存放的最大用戶數對應於允許以SYSDBA/SYSOPER權限登錄數據庫的最大用戶數由於在以後的維護中若用戶數超出了此限制則需要重建密碼文件所以此參數可以根據需要設置得大一些
  
  有了密碼文件之後需要設置初始化參數REMOTE_LOGIN_PASSWORDFILE來控制密碼文件的使用狀態
  
  ·設置初始化參數REMOTE_LOGIN_PASSWORDFILE:
  
  在Oracle數據庫實例的初始化參數文件中此參數控制著密碼文件的使用及其狀態它可以有以下幾個選項:
  
  NONE:指示Oracle系統不使用密碼文件特權用戶的登錄通過操作系統進行身份驗證;
  
  EXCLUSIVE:指示只有一個數據庫實例可以使用此密碼文件只有在此設置下的密碼文件可以包含有除INTERNAL/SYS以外的用戶信息即允許將系統權限SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用戶
  
  SHARED:指示可有多個數據庫實例可以使用此密碼文件在此設置下只有INTERNAL/SYS帳號能被密碼文件識別即使文件中存有其他用戶的信息也不允許他們以SYSOPER/SYSDBA的權限登錄此設置為缺省值
  
  在REMOTE_LOGIN_PASSWORDFILE參數設置為EXCLUSIVESHARED情況下Oracle系統搜索密碼文件的次序為:在系統注冊庫中查找ORA_SID_PWFILE參數值(它為密碼文件的全路徑名);若未找到則查找ORA_PWFILE參數值;若仍未找到則使用缺省值ORACLE_HOME\DATABASE\PWDSIDORA;其中的SID代表相應的Oracle數據庫系統標識符
  
  ·向密碼文件中增加刪除用戶:
  
  當初始化參數REMOTE_LOGIN_PASSWORDFILE設置為EXCLUSIVE時系統允許除INTERNAL/SYS以外的其他用戶以管理員身份從遠端或本機登錄到Oracle數據庫系統執行數據庫管理工作;這些用戶名必須存在於密碼文件中系統才能識別他們由於不管是在創建數據庫實例時自動創建的密碼文件還是使用工具ORAPWDEXE手工創建的密碼文件都只包含INTERNAL/SYS用戶的信息;為此在實際操作中可能需要向密碼文件添加或刪除其他用戶帳號
  
  由於僅被授予SYSOPER/SYSDBA系統權限的用戶才存在於密碼文件中所以當向某一用戶授予或收回SYSOPER/SYSDBA系統權限時他們的帳號也將相應地被加入到密碼文件或從密碼文件中刪除由此向密碼文件中增加或刪除某一用戶實際上也就是對某一用戶授予或收回SYSOPER/SYSDBA系統權限
  
  要進行此項授權操作需使用SYSDBA權限(或INTERNAL帳號)連入數據庫且初始化參數REMOTE_LOGIN_PASSWORDFILE的設置必須為EXCLUSIVE具體操作步驟如下:
  
  創建相應的密碼文件;
  
  設置初始化參數REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE;
  
  使用SYSDBA權限登錄: CONNECT SYS/internal_user_passsword AS SYSDBA;
  
  啟動數據庫實例並打開數據庫;
  
  創建相應用戶帳號對其授權(包括SYSOPER和SYSDBA): 授予權限:GRANT SYSDBA TO user_name;
  
  收回權限:REVOKE SYSDBA FROM user_name;
  
  現在這些用戶可以以管理員身份登錄數據庫系統了;
  
  ·使用密碼文件登錄:
  
  有了密碼文件後用戶就可以使用密碼文件以SYSOPER/SY
From:http://tw.wingwit.com/Article/program/Oracle/201311/17833.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.