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

Oracle 數據安全問題面面觀(2)

2013-11-13 16:15:43  來源: Oracle 

  (二)來自內部的另外一個隱患用戶管理以及密碼問題
  在這裡其實作為一個差不多點的數據庫管理員都很清楚Oracle數據庫本身就使用了很多種手段來加強數據庫的安全性經常見到的就有密碼角色權限等等那麼我們就從最簡單的DBSNMP說起
  
  Oralce數據庫如果采用典型安裝後自動創建了一個叫做DBSNMP的用戶該用戶負責運行Oracle系統的智能代理(Intelligent Agent)該用戶的缺省密碼也是DBSNMP如果忘記修改該用戶的口令任何人都可以通過該用戶存取數據庫系統現在我們來看一下該用戶具有哪些權限和角色然後來分析一下該用戶對數據庫系統可能造成的損失
  
  啟動SQL/PLUS程序使用該用戶登錄進入
  
  SQL> select * from session_privs;
  CREATE SESSION
  ALTER SESSION
  UNLIMITED TABLESPACE
  CREATE TABLE
  CREATE CLUSTER
  CREATE SYNONYM
  CREATE PUBLIC SYNONYM
  CREATE VIEW
  CREATE SEQUENCE
  CREATE DATABASE LINK
  CREATE PROCEDURE
  CREATE TRIGGER
  ANALYZE ANY
  CREATE TYPE
  CREATE OPERATOR
  CREATE INDEXTYPE
  
  可以看到該用戶不是SYS或SYSTEM管理用戶然而它卻具有兩個系統級權限UNLIMITED TABLESPACE和CREATE PUBLIC SYNONYM
  
  看到這兩個權限你應該馬上想到這些都是安全隱患尤其是UNLIMITED TABLESPACE它是破壞數據庫系統的攻擊點之一如果這時候你還依然認為即使有人利用這個沒有修改的口令登錄進數據庫也造成不了什麼損失的話我就不得不提醒你該用戶具有UNLIMITED TABLESPACE的系統權限它可以寫一個小的腳本然後惡意將系統用垃圾數據填滿這樣數據庫系統也就無法運行並將直接導致最終的癱瘓目前很多數據庫系統都要求X的工作如果出現了系統用垃圾數據填滿的情況那麼等數據庫系統恢復時恐怕不可挽回的損失已經造成了
  
  可是除了DBSNMP還有很多其他的用戶怎麼辦呢?讓我們先看一下目前普遍存在於Oracle數據庫中的用戶管理問題
  
  ()權限過大對ORACLE數據庫編程和浏覽的一般用戶常常具有DBA (數據庫管理員權限)能對數據庫系統做任何修改或刪除
  
  ()安全性差很多ORACLE用戶缺省存儲位置都在系統表空間這樣不僅影響系統的正常工作而且不同用戶的數據信息互相影響透明保密性差隨著數據的不斷加入有可能使整個數據庫系統崩潰
  
  ()密碼有規律在ORACLE調試初期形成的用戶名和密碼一致的不良習慣保留到現在系統用戶SYS和SYSTEM的密碼也眾所皆知
  
  知道了這些普遍的毛病我們怎麼做呢?下面是我的一些建議
  
  ()ORACLE DBA (數據庫管理員)的規范
  
  ·SUN Solaris操作系統下ORACLE用戶密碼應嚴格保密絕不該把密碼設成ORACLE並指定專門的數據庫管理員定期修改
  
  ·ORACLE初始化建立的SYS和SYSTEM系統管理員用戶密碼應由原來MANAGER改成別的不易被記憶的字符串
  
  ·ORACLE WEB SERVER的管理端口具備DBA浏覽數據庫的能力因此其管理者ADMIN的密碼也應保密不該把密碼設成MANAGER並指定專門的數據庫管理員定期修改
  
  ·ORACLE DBA最好在SUN SPARC服務器控制台上用窗口式界面實現管理前提是ORACLE用戶啟動服務器然後在窗口式命令行下輸入SVRMGRM即啟動了ORACLE SERVER MANAGER菜單式管理用SYSDBA身份登錄後就可做數據庫系統維護工作了
  
  ()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/dbsdefault_datafile_home指較為空閒的硬盤資源分區路徑
  
  ②物理文件的大小根據應用系統的數據量數據對象程序包的多少來定一般用於摹擬演示的小系統表空間初始的物理文件為M即能滿足要求如果信息量滿還可以增加物理文件擴充表空間(每次擴充大小也可暫定為M)一般實際運行的應用系統可適當增加表空間初始的物理文件大小但也不要一次分配太大(因為不易回收空間卻易擴充空間)這也需要根據具體情況具體分析信息量大需長時間保存的應用在條件允許情況下表空間可以大到幾百M甚至上G信息量小短期經常刷新的應用表空間可以控制在M以下
  
  ③表空間的名稱應該采用同系統應用相似的英文字符或字符縮寫表空間所對應的一個或多個物理文件名也應有相關性不同用戶所處的缺省表空間不同存儲的信息就不能互相訪問這比把所有用戶信息都儲存在系統表空間安全性大大提高了如果用ORACLE WEB SERVER管理端口創建的用戶其缺省和臨時表空間一定是系統表空間DBA切記要改變用戶的缺省表空間臨時表空間存放臨時數據段處理一些排序合並等中間操作根據實際應用的需求可以把它們放在專門創建的表空間裡如果系統表空間大也可以把它們放在系統表空間用戶創建的數據索引最好和數據文件分開存放在不同表空間以減少數據爭用和提高響應速度
From:http://tw.wingwit.com/Article/program/Oracle/201311/18048.html
  • 上一篇文章:

  • 下一篇文章:
  • Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.