達夢數據庫DM8安全管理_第1頁
達夢數據庫DM8安全管理_第2頁
達夢數據庫DM8安全管理_第3頁
達夢數據庫DM8安全管理_第4頁
達夢數據庫DM8安全管理_第5頁
已閱讀5頁,還剩168頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、達夢數據庫DM8 安全管理 DM8 安全管理 PAGE * ROMAN VI前言概述本文檔主要介紹 DM 的安全體系結構,各安全管理模塊的功能、原理及相關的數據庫管理員和用戶如何利用這些安全管理功能對數據庫或自己的數據進行安全保護。讀者對象本文檔主要適用于 DM 數據庫的:數據庫管理員開發工程師測試工程師技術支持工程師通用約定在本文檔中可能出現下列標志,它們所代表的含義如下:表 0.1 標志含義標志說明表示可能導致系統損壞、數據丟失或不可預知的結果。表示可能導致性能降低、服務不可用。可以幫助您解決某個問題或節省您的時間。表示正文的附加信息,是對正文的強調和補充。在本文檔中可能出現下列格式,它們

2、所代表的含義如下:表 0.2 格式含義格式說明宋體表示正文。黑體標題、警告、注意、小竅門、說明等內容均采用黑體。Courier new表示代碼或者屏幕顯示內容。粗體表示命令行中的關鍵字(命令中保持不變、必須照輸的部分)或者正文中強調的內容。語法符號中,表示一個語法對象。:=語法符號中,表示定義符,用來定義一個語法對象。定義符左邊為語法對象,右邊為相應的語法描述。|語法符號中,表示或者符,限定的語法選項在實際語句中只能出現一個。 語法符號中,大括號內的語法選項在實際的語句中可以出現 0N 次(N 為大于 0 的自然數),但是大括號本身不能出現在語句中。 語法符號中,中括號內的語法選項在實際的語句

3、中可以出現 01 次,但是中括號本身不能出現在語句中。關鍵字 關鍵字在 DM_SQL 語言中具有特殊意義,在 SQL 語法描述中,關鍵字以大寫形式出現。但在實際書寫 SQL 語句時,關鍵字既可以大寫也可以小寫。目錄 HYPERLINK l _bookmark0 概述1 HYPERLINK l _bookmark1 數據庫安全管理1 HYPERLINK l _bookmark2 DM 安全管理1 HYPERLINK l _bookmark3 DM 安全管理功能系統結構1 HYPERLINK l _bookmark4 安全管理功能簡介2 HYPERLINK l _bookmark5 DM 安全版本

4、3 HYPERLINK l _bookmark6 一點說明3 HYPERLINK l _bookmark7 用戶標識與鑒別4 HYPERLINK l _bookmark8 DM 的管理用戶4 HYPERLINK l _bookmark9 如何創建用戶6 HYPERLINK l _bookmark10 口令策略8 HYPERLINK l _bookmark11 用戶身份驗證模式10 HYPERLINK l _bookmark12 基于操作系統的身份驗證10 HYPERLINK l _bookmark13 LDAP 身份驗證10 HYPERLINK l _bookmark14 KERBEROS 身

5、份驗證11 HYPERLINK l _bookmark15 如何修改用戶信息12 HYPERLINK l _bookmark16 如何刪除用戶12 HYPERLINK l _bookmark17 自主訪問控制14 HYPERLINK l _bookmark18 權限管理14 HYPERLINK l _bookmark19 數據庫權限14 HYPERLINK l _bookmark20 對象權限16 HYPERLINK l _bookmark21 角色管理17 HYPERLINK l _bookmark22 角色的創建與刪除18 HYPERLINK l _bookmark23 角色的啟用與禁用2

6、1 HYPERLINK l _bookmark24 權限的分配與回收21 HYPERLINK l _bookmark25 數據庫權限的分配與回收22 HYPERLINK l _bookmark26 對象權限的分配與回收23 HYPERLINK l _bookmark27 角色權限的分配與回收29 HYPERLINK l _bookmark28 強制訪問控制31 HYPERLINK l _bookmark29 如何創建策略31 HYPERLINK l _bookmark30 策略的組成31 HYPERLINK l _bookmark31 創建、修改與刪除策略32 HYPERLINK l _boo

7、kmark32 為策略添加組件34 HYPERLINK l _bookmark33 如何創建標記41 HYPERLINK l _bookmark34 創建標記42 HYPERLINK l _bookmark35 修改標記43 HYPERLINK l _bookmark36 刪除標記44 HYPERLINK l _bookmark37 隱式創建標記45 HYPERLINK l _bookmark38 如何對表應用策略47 HYPERLINK l _bookmark39 對表應用策略47 HYPERLINK l _bookmark40 取消表策略48 HYPERLINK l _bookmark41

8、 如何對用戶應用策略49 HYPERLINK l _bookmark42 設置用戶等級50 HYPERLINK l _bookmark43 設置用戶范圍51 HYPERLINK l _bookmark44 設置用戶組52 HYPERLINK l _bookmark45 清除用戶策略53 HYPERLINK l _bookmark46 如何對會話應用策略54 HYPERLINK l _bookmark47 設置會話默認標記54 HYPERLINK l _bookmark48 設置會話行標記55 HYPERLINK l _bookmark49 清除會話標記55 HYPERLINK l _bookm

9、ark50 保存會話標記56 HYPERLINK l _bookmark51 讀寫控制規則56 HYPERLINK l _bookmark52 讀訪問規則57 HYPERLINK l _bookmark53 寫訪問規則58 HYPERLINK l _bookmark54 4.6.3 特權59 HYPERLINK l _bookmark55 擴展客體標記61 HYPERLINK l _bookmark56 對客體應用標記61 HYPERLINK l _bookmark57 修改客體標記62 HYPERLINK l _bookmark58 刪除客體標記63 HYPERLINK l _bookmar

10、k59 一個強制訪問控制的例子64 HYPERLINK l _bookmark60 相關數據字典表68 HYPERLINK l _bookmark61 5 審計70 HYPERLINK l _bookmark62 審計開關70 HYPERLINK l _bookmark63 審計的設置與取消70 HYPERLINK l _bookmark64 語句級審計71 HYPERLINK l _bookmark65 對象級審計75 HYPERLINK l _bookmark66 語句序列審計78 HYPERLINK l _bookmark67 關于審計設置的一些說明80 HYPERLINK l _boo

11、kmark68 審計文件管理80 HYPERLINK l _bookmark69 審計信息查閱82 HYPERLINK l _bookmark70 審計實時侵害檢測84 HYPERLINK l _bookmark71 創建與刪除實時侵害檢測規則84 HYPERLINK l _bookmark72 實時侵害檢測88 HYPERLINK l _bookmark73 審計告警工具 dmamon90 HYPERLINK l _bookmark74 審計分析91 HYPERLINK l _bookmark75 審計規則92 HYPERLINK l _bookmark76 審計日志查看器94 HYPERL

12、INK l _bookmark77 通信加密96 HYPERLINK l _bookmark78 存儲加密97 HYPERLINK l _bookmark79 透明加密97 HYPERLINK l _bookmark80 全庫加密98 HYPERLINK l _bookmark81 表空間透明加密98 HYPERLINK l _bookmark82 表列透明加密99 HYPERLINK l _bookmark83 其他數據庫對象加密100 HYPERLINK l _bookmark84 半透明加密100 HYPERLINK l _bookmark85 非透明加密101 HYPERLINK l

13、_bookmark86 加密引擎114 HYPERLINK l _bookmark87 編程接口介紹115 HYPERLINK l _bookmark88 算法信息相關接口115 HYPERLINK l _bookmark89 加密過程相關接口116 HYPERLINK l _bookmark90 解密過程相關接口118 HYPERLINK l _bookmark91 散列過程相關接口120 HYPERLINK l _bookmark92 其他可選相關接口122 HYPERLINK l _bookmark93 接口庫文件說明128 HYPERLINK l _bookmark94 編程實例128

14、 HYPERLINK l _bookmark95 資源限制150 HYPERLINK l _bookmark96 客體重用153 HYPERLINK l _bookmark97 登錄用戶名密碼增強加密154 HYPERLINK l _bookmark98 DMKEY 工具的使用154 HYPERLINK l _bookmark99 啟動 dmkey154 HYPERLINK l _bookmark100 查看 dmkey 參數155 HYPERLINK l _bookmark101 服務器端配置156 HYPERLINK l _bookmark102 客戶端配置156 HYPERLINK l

15、_bookmark103 dm_svc.conf156 HYPERLINK l _bookmark104 11.3.2 DPI157 HYPERLINK l _bookmark105 啟動數據庫服務器157 HYPERLINK l _bookmark106 應用實例157 HYPERLINK l _bookmark107 附錄 1 “三權分立”預設角色權限列表158 HYPERLINK l _bookmark108 附錄 2 “四權分立”預設角色權限列表163 DM8 安全管理 PAGE 5概述數據庫安全管理數據庫安全管理是指采取各種安全措施對數據庫及其相關文件和數據進行保護。數據庫系統的重要

16、指標之一是確保系統安全,以各種防范措施防止非授權使用數據庫,主要通過數據庫管理系統進行實現。數據庫系統中一般采用用戶標識與鑒別、存取控制以及密碼存儲等技術進行安全控制。數據庫安全的核心和關鍵是其數據安全。數據安全指以保護措施確保數據的完整性、保密性、可用性、可控性和可審查性。由于數據庫存儲著大量的重要信息和機密數據,而且在數據庫系統中大量數據集中存放,供多用戶共享,因此,必須加強對數據庫訪問的控制和數據安全防護。DM 安全管理DM 安全管理功能系統結構DM 的安全管理就是為保護存儲在 DM 數據庫中的各類敏感數據的機密性、完整性和可用性提供必要的技術手段,防止對這些數據的非授權泄露、修改和破壞

17、,并保證被授權用戶能按其授權范圍訪問所需要的數據。DM 作為安全數據庫,提供了包括用戶標識與鑒別、自主與強制訪問控制、通信與存儲加密、審計等豐富的安全功能,且各安全功能都可進行配置,滿足各類型用戶在安全管理方面不同層次的需求。DM 的安全管理功能體系結構如圖 1.1 所示。 通信加密備份數據 通信加密網絡 通信加密數據OS客體重用強制訪問控制存儲加密加密引擎資源限制DM服務器自主訪問控制審計用戶標識與鑒別通信加密圖 1.1 DM 安全功能體系結構安全管理功能簡介從圖 1.1 可以看出 DM 的安全管理功能相當豐富與完善,各安全功能的簡介見表 1.1。表 1.1 DM 安全管理功能簡介安全功能簡

18、介用戶標識與鑒別可以通過登錄帳戶區別各用戶,并通過口令方式防止用戶被冒充自主訪問控制通過權限管理,使用戶只能訪問自己權限內的數據對象強制訪問控制通過安全標記,使用戶只能訪問與自己安全級別相符的數據對象審計審計人員可以查看所有用戶的操作記錄,為明確事故責任提供證據支持通信、存儲加密用戶可以自主的將數據以密文的形式存儲在數據庫中。也可以對在網絡上傳輸的數據進行加密加密引擎用戶可以用自定義的加密算法來加密自己的核心數據資源限制可以對網絡資源和磁盤資源進行配額設置,防止惡意資源搶占客體重用實現了內存與磁盤空間的釋放清理,防止信息數據的泄露DM 安全版本DM 數據庫版本有標準版、企業版和安全版的區別,通

19、過產品的 License 進行區分。標準版和企業版在安全功能上沒有區別,因此在本文中,將標準版和企業版統稱為普通版本, 以與安全版本進行區分。標準版本提供的安全管理功能有:用戶標識與鑒別、自主訪問控制、審計、通信加密、存儲加密、加密引擎、資源限制與客體重用;安全版本在普通版本的基礎上,還提供“四權分立”安全機制和強制訪問控制安全管理功能,能滿足對安全管理有更高需求的數據庫用戶的要求。另外,在普通版本提供的安全功能中,有一些具體的更強的安全功能細節也僅在安全版本提供,將在后面具體介紹的地方一一指出。DM 安全版本在安裝時與普通版本沒有什么區別,在 DM 服務器安裝過程中的驗證 Key 文件步驟,

20、安裝程序會驗證 Key 文件信息是否為合法的安全版 Key,否則將無法使用安全版的安全特性,具體請參見DM8 安裝手冊。一點說明本書中的示例,除了具體給出建表語句的除外,其余使用的表均為 DM 示例庫中的表。DM 示例庫可在安裝 DM 數據庫時選擇安裝,其具體說明可參考DM8_SQL 語言使用手冊。用戶標識與鑒別用戶標識與鑒別對試圖登錄數據庫進行數據訪問的用戶進行身份驗證,以確認此用戶是否能與某一數據庫用戶進行關聯,并根據關聯的數據庫用戶的權限對此用戶在數據庫中的數據訪問活動進行安全控制。DM 的管理用戶在現實生活中,任何一個系統如果將所有的權利都賦予給某一個人,而不加以監督和控制,勢必會產生

21、權利濫用的風險。從數據庫安全角度出發,一個大型的數據庫系統有必要將數據庫系統的權限分配給不同的角色來管理,并且各自偏重于不同的工作職責,使之能夠互相限制和監督,從而有效保證系統的整體安全。DM 數據庫采用“三權分立”或“四權分立”的安全機制,將系統中所有的權限按照類型進行劃分,為每個管理員分配相應的權限,管理員之間的權限相互制約又相互協助,從而使整個系統具有較高的安全性和較強的靈活性。可在創建 DM 數據庫時通過建庫參數 PRIV_FLAG 設置使用“三權分立”或“四權分立” 安全機制,此參數僅在 DM 安全版本下提供,即僅 DM 安全版本提供“四權分立”安全機制。缺省采用“三權分立”安全機制

22、。使用“三權分立”安全機制時,將系統管理員分為數據庫管理員、數據庫安全員和數據庫審計員三種類型。在安裝過程中,DM 數據庫會預設數據庫管理員賬號 SYSDBA、數據庫安全員賬號 SYSSSO 和數據庫審計員賬號 SYSAUDITOR,其缺省口令都與用戶名一致。使用“四權分立”的安全機制時,將系統管理員分數據庫管理員、數據庫對象操作員、數據庫安全員和數據庫審計員四種類型,在“三權分立”的基礎上,新增數據庫對象操作員賬戶 SYSDBO,其缺省口令為 SYSDBO。各管理員應在安裝過程中或安裝完畢后立即修改缺省口令,避免因口令 泄漏造成的安全問題。數據庫管理員(DBA)每個數據庫至少需要一個 DBA

23、 來管理,DBA 可能是一個團隊,也可能是一個人。在不同的數據庫系統中,數據庫管理員的職責可能也會有比較大的區別,總體而言,數據庫管理員的職責主要包括以下任務:評估數據庫服務器所需的軟、硬件運行環境安裝和升級 DM 服務器數據庫結構設計監控和優化數據庫的性能計劃和實施備份與故障恢復數據庫安全員(SSO)有些應用對于安全性有著很高的要求,傳統的由 DBA 一人擁有所有權限并且承擔所有職責的安全機制可能無法滿足企業實際需要,此時數據庫安全員和數據庫審計員兩類管理用戶就顯得異常重要,它們對于限制和監控數據庫管理員的所有行為都起著至關重要的作用。數據庫安全員的主要職責是制定并應用安全策略,強化系統安全

24、機制。數據庫安全員SYSSSO 是 DM 數據庫初始化的時候就已經創建好的,可以以該用戶登錄到 DM 數據庫來創建新的數據庫安全員。SYSSSO 或者新的數據庫安全員都可以制定自己的安全策略,在安全策略中定義安全級別、范圍和組,然后基于定義的安全級別、范圍和組來創建安全標記,并將安全標記分別應 用到主體(用戶)和客體(各種數據庫對象,如表、索引等),以便啟用強制訪問控制功能。數據庫安全員不能對用戶數據進行增、刪、改、查,也不能執行普通的 DDL 操作如創建表、視圖等。他們只負責制定安全機制,將合適的安全標記應用到主體和客體,通過這種方式可以有效的對 DBA 的權限進行限制,DBA 此后就不能直

25、接訪問添加有安全標記的數據, 除非安全員給 DBA 也設定了與之匹配的安全標記,DBA 的權限受到了有效的約束。數據庫安全員也可以創建和刪除新的安全用戶,向這些用戶授予和回收安全相關的權限,具體參見3.2.1 節。數據庫審計員(AUDITOR)我們可以想象一下,某個企業內部 DBA 非常熟悉公司內部 ERP 系統的數據庫設計,該系統包括了員工工資表,里面記錄了所有員工的工資,公司的出納通過查詢系統內部員工工資表來發放工資。傳統的 DBA 集所有權利于一身,可以很容易修改工資表,從而導致公司 DM8 安全管理 PAGE 7工資賬務錯亂。為了預防該問題,可以采用前面數據庫安全員制定安全策略的方法,

26、避免DBA 或者其他數據庫用戶具有訪問該表的權限。為了能夠及時找到 DBA 或者其他用戶的非法操作,在 DM 數據庫中還可以在系統建設初期,由數據庫審計員(SYSAUDITOR 或者其他由 SYSAUDITOR 創建的審計員)來設置審計策略(包括審計對象和操作),在需要時, 數據庫審計員可以查看審計記錄,及時分析并查找出幕后真兇。從上面的介紹中我們也可以看出,在 DM 數據庫中,審計員的主要職責就是創建和刪除數據庫審計員,設置/取消對數據庫對象和操作的審計設置,查看和分析審計記錄等。數據庫對象操作員(DBO)數據庫對象操作員是“四權分立”新增加的一類用戶,可以創建數據庫對象,并對自己擁有的數據

27、庫對象(表、視圖、存儲過程、序列、包、外部鏈接等)具有所有的對象權限并可以授出與回收,但其無法管理與維護數據庫對象。如何創建用戶數據庫系統在運行的過程中,往往需要根據實際需求創建用戶,然后為用戶指定適當的權限。創建用戶的操作一般只能由系統預設用戶 SYSDBA、SYSSSO 和 SYSAUDITOR 完成, 如果普通用戶需要創建用戶,必須具有 CREATE USER 的數據庫權限。創建用戶的命令是 CREATE USER,創建用戶所涉及的內容包括為用戶指定用戶名、認證模式、口令、口令策略、空間限制、只讀屬性以及資源限制。其中用戶名是代表用戶賬號的標識符,長度為 1128 個字符。用戶名可以用雙

28、引號括起來,也可以不用,但如果用戶名以數字開頭,必須用雙引號括起來。在 DM 中使用 CREATE USER 語句創建用戶,具體的語法格式如下:CREATE USER IDENTIFIEDPASSWORD_POLICY ; := | := BY := EXTERNALLY | EXTERNALLY AS := 口令策略項的任意組合 := ACCOUNT LOCK | ACCOUNT UNLOCK := ENCRYPT BY := DISKSPACE LIMIT | DISKSPACE UNLIMITED := READ ONLY | NOT READ ONLY := LIMIT , := SE

29、SSION_PER_USER |CONNECT_IDLE_TIME |CONNECT_TIME | CPU_PER_CALL | CPU_PER_SESSION | MEM_SPACE | READ_PER_CALL | READ_PER_SESSION | FAILED_LOGIN_ATTEMPS | PASSWORD_LIFE_TIME | PASSWORD_REUSE_TIME | PASSWORD_REUSE_MAX | PASSWORD_LOCK_TIME | PASSWORD_GRACE_TIME :=| UNLIMITED := ALLOW_IP , := NOT_ALLOW_I

30、P , := | := ALLOW_DATETIME , := NOT_ALLOW_DATETIME , := | := TO := TO := MON | TUE | WED | THURS | FRI | SAT | SUNDM8 安全管理 PAGE 8 :=DEFAULT TABLESPACE 口令策略、外部身份驗證、IP 限制以及時間限制僅在 DM 安全版本中才提供支持。資源限制子句將在第 9 章進行詳細介紹。CREATE USER BOOKSHOP_USER IDENTIFIED BY BOOKSHOP_PASSWORD LIMIT CONNECT_TIME3;例如,創建用戶名為 B

31、OOKSHOP_USER、口令為 BOOKSHOP_PASSWORD、會話超時為3 分鐘的用戶。口令策略0無策略1禁止與用戶名相同2口令長度不小于 94至少包含一個大寫字母(A-Z)8至少包含一個數字(0-9)16至少包含一個標點符號(英文輸入法狀態下,除“和空格外的所有符號)用戶口令最長為 48 字節,創建用戶語句中的 PASSWORD POLICY 子句用來指定該用戶的口令策略,系統支持的口令策略有:口令策略可單獨應用,也可組合應用。組合應用時,如需要應用策略 2 和 4,則設置口令策略為 2+4=6 即可。除了在創建用戶語句中指定該用戶的口令策略,DM 的 INI 參數 PWD_POLI

32、CY 可以指定系統的默認口令策略,其參數值的設置規則與 PASSWORD POLICY 子句一致,缺省值為2。若在創建用戶時沒有使用 PASSWORD POLICY 子句指定用戶的口令策略,則使用系統的默認口令策略。SELECT * FROM V$PARAMETER WHERE NAME=PWD_POLICY;系統管理員可通過查詢 V$PARAMETER 動態視圖查詢 PWD_POLICY 的當前值。也可以通過使用客戶端工具 Console 或調用系統過程 SP_SET_PARA_VALUE 重新設置 PWD_POLICY 的值。 DM8 安全管理 PAGE 10使用客戶端工具 ConsleD

33、BA 用戶在 DM 控制臺 Console 工具中,配置 DM 數據庫的 PWD_POLICY 參數值,如下圖所示。圖 2.1 使用 Console 工具配置 PWD_POLICY需要注意的是,Console 為脫機工具,對參數值的修改通過修改 dm.ini 文件中的參數值來進行,無論參數類型是靜態還是動態,都需要重啟 DM 服務器才能使新設置的參數值生效。使用系統過程DBA 用戶也可以使用系統過程 SP_SET_PARA_VALUE 來配置 PWD_POLICY 參數值, 關于 SP_SET_PARA_VALUE 的詳細介紹請參考DM8_SQL 語言使用手冊。例如,將 PWD_POLICY

34、置為 8,同時修改文件和內存參數,由于 PWD_POLICY 為動態SP_SET_PARA_VALUE(1, PWD_POLICY,8);INI 參數,這樣設置后新的參數值可以立即生效。DM 的 INI 參數都可以通過上述使用客戶端工具 Console 或調用系統過程SP_SET_PARA_VALUE/SP_SET_PARA_DOUBLE_VALUE/SP_SET_PARA_STRING_VALUE 的方法來進行設置,后續不再具體描述。用戶身份驗證模式DM 提供數據庫身份驗證模式和外部身份驗證模式來保護對數據庫訪問的安全。數據庫身份驗證模式需要利用數據庫口令,即在創建或修改用戶時指定用戶口令,

35、用戶在登錄時輸入對應口令進行身份驗證;外部身份驗證模式支持基于操作系統(OS)的身份驗證、LDAP 身份驗證和 KERBEROS 身份驗證。基于操作系統的身份驗證如要利用基于 OS 的身份驗證,則在創建用戶或修改用戶時,要利用 IDENTIFIED EXTERNALLY 關鍵字。基于 OS 的身份驗證分為本機驗證和遠程驗證,本機驗證在任何情況下都可以使用,而遠程驗證則需要將 DM 配置文件 dm.ini 的 ENABLE_REMOTE_OSAUTH 參數設置為 1(缺省為 0),表示支持遠程驗證;同時還要將 dm.ini 的 ENABLE_ENCRYPT 參數設置為 1(缺省為 1),表示采用

36、 SSL 安全連接。這兩個參數均為靜態參數,數據庫管理員可以使用系統過程 SP_SET_PARA_VALUE 進行修改,但修改后需要重新啟動 DM 服務器才能生效。用戶登錄時將用戶名寫為“/username”的形式,表示以操作系統身份驗證模式登錄,不需要輸入口令。LDAP 身份驗證DM 提供對 LDAP 的支持,主要利用 LDAP 服務器存儲的賬戶數據信息,驗證賬戶是否是數據庫的合法用戶。我們假定企業已經部署了 LDAP 服務器和 CA 服務器(或者花錢購買了證書認證)。要使用 LDAP 身份驗證,首先要在 DM 配置文件 dm.ini 中添加參數 LDAP_HOST。此參數為 LDAP 數據

37、源所在機器的主庫名,假如主庫名為 ,則LDAP_HOST = 。LDAP 身份驗證創建用戶的語法如下:CREATE USER IDENTIFIED EXTERNALLY AS ;DM8 安全管理 PAGE 13“.”表示 2.2 節中創建用戶語法從“”開始往后的語法部分。語法中的“用戶 DN”指 LDAP 數據源中用戶 DN,可以唯一標識每一個用戶。例如,如果域名為 ,若以 Administrator 用戶登錄,按 DN 規范書寫則 certificate_dn 為 cn=Administ

38、rator,cn=users,dc=dameng,dc=org。則創建用戶語法可以寫為:CREATE USER USER01 IDENTIFIED EXTERNALLY AS cn=Administrator,cn=users,dc=dameng,dc=org;Windows 操作系統下:Linux 操作系統下:CREATE USER USER01 IDENTIFIED EXTERNALLY AS cn=root, dc=dameng,dc=org;當用戶使用 DM 客戶端或接口登錄 DM 數據庫時,將用戶名寫為“/username”的形式, 則表示以 LDAP 驗證方式進行登錄,登錄密碼為

39、LDAP 數據源中創建用戶時使用的密碼。KERBEROS 身份驗證KERBEROS 是為 TCP/IP 網絡系統設計的可信的第三方認證協議,DM 支持 KERBEROS身份驗證。我們假設用戶已經正確配置了 KERBEROS 使用環境。KERBEROS 身份驗證創建用戶的語法如下:CREATE USER IDENTIFIED EXTERNALLY;“.”表示 2.2 節中創建用戶語法從“”開始往后的語法部分。當用戶使用 DM 客戶端或接口登錄 DM 數據庫時,將用戶名寫為“/username”的形式,則表示以 KERBEROS 驗證方式進行登錄,不需要輸入密碼。如何修改用戶信息為了防止不法之徒盜

40、取用戶的口令,用戶應該經常改變自己的口令。用戶的口令不應 該是類似 12345,abcdef 這樣簡單的字符串,更不要指定為自己的生日或姓名,也不要指定為一個英文單詞,因為這樣的口令很容易被破解。一個好的口令應該包含大小寫字母、數字、特殊符號在內的混合字符串。統計表明,一個口令中包含的成分越復雜,就越難破譯。修改用戶口令的操作一般由用戶自己完成,SYSDBA、SYSSSO、SYSAUDITOR 可以無條件修改同類型的用戶的口令。普通用戶只能修改自己的口令,如果需要修改其他用戶的口令,必須具有 ALTER USER 數據庫權限。修改用戶口令時,口令策略應符合創建該用戶時指定的口令策略。使用 AL

41、TER USER 語句可修改用戶口令。除口令外,這個語句還可以修改用戶的口令策略、空間限制、只讀屬性以及資源限制等。當然,系統固定用戶的系統角色和資源限制不能被修改。ALTER USER 的語法與創建用戶的語法極為相似,具體語法格式如下:ALTER USER IDENTIFIED PASSWORD_POLICY ; 每個子句的具體語法參見創建用戶語法說明ALTER USER BOOKSHOP_USER DISKSPACE LIMIT 20;例如,下面的語句修改用戶 BOOKSHOP_USER 的空間限制為 20M。不論 DM 的 INI 參數 DDL_AUTO_COMMIT 設置為自動提交還是

42、非自動提交,ALTER USER 操作都會被自動提交。如何刪除用戶當一個用戶不再需要訪問數據庫系統時,應將這個用戶及時地從數據庫中刪除,否則可能會有安全隱患。刪除用戶的操作一般由 SYSDBA、SYSSSO、SYSAUDITOR 完成,他們可以刪除同類型的其他用戶。普通用戶要刪除其他用戶,需要具有 DROP USER 權限。使用 DROP USER 語句刪除語句,語法格式為:DROP USER RESTRICT | CASCADE;一個用戶被刪除后,這個用戶本身的信息,以及它所擁有的數據庫對象的信息都將從數據字典中被刪除。如果在刪除用戶時未使用 CASCADE 選項(缺省使用 RESTRICT

43、 選項),若該用戶建立了數據庫對象,DM 將返回錯誤信息,而不刪除此用戶。如果在刪除用戶時使用了 CASCADE 選項,除數據庫中該用戶及其創建的所有對象被刪除外,若其他用戶創建的對象引用了該用戶的對象,DM 還將自動刪除相應的引用完整性約束及依賴關系。例如,假設用戶 BOOKSHOP_USER 建立了自己的表或其他數據庫對象,執行下面的語DROP USER BOOKSHOP_USER;句:將提示錯誤信息“試圖刪除被依賴對象BOOKSHOP_USER”。DROP USER BOOKSHOP_USER CASCADE;下面的語句則能成功執行,會將 BOOKSHOP_USER 所建立的數據庫對象一

44、并刪除。正在使用中的用戶可以被其他具有 DROP USER 權限的用戶刪除,被刪除的用戶繼續做操作或嘗試重新連接數據庫會報錯。 DM8 安全管理 PAGE 19自主訪問控制自主訪問控制(DiscretionaryAccess Control,DAC)是這樣一種訪問控制方式:由數據庫對象的擁有者自主決定是否將自己擁有的對象的部分或全部訪問權限授予其他用戶。也就是說,在自主訪問控制下,用戶可以按照自己的意愿,有選擇地與其他用戶共享他擁有的數據庫對象。權限管理DM 數據庫對用戶的權限管理有著嚴密的規定,如果沒有權限,用戶將無法完成任何操作。用戶權限有兩類:數據庫權限和對象權限。數據庫權限主要是指針對

45、數據庫對象的創建、刪除、修改的權限,對數據庫備份等權限。而對象權限主要是指對數據庫對象中的數據的訪 問權限。數據庫權限一般由 SYSDBA、SYSAUDITOR 和 SYSSSO 指定,也可以由具有特權的其他用戶授予。對象權限一般由數據庫對象的所有者授予用戶,也可由 SYSDBA 用戶指定,或者由具有該對象權限的其他用戶授權。數據庫權限數據庫權限是與數據庫安全相關的非常重要的權限,其權限范圍比對象權限更加廣泛, 因而一般被授予數據庫管理員或者一些具有管理功能的角色。數據庫權限與 DM 預定義角色有著重要的聯系,一些數據庫權限由于權力較大,只集中在幾個 DM 系統預定義角色中,且不能轉授,我們將

46、在 中進行具體介紹。DM 提供了 100 余種數據庫權限,表 3.1 列出了最常用的幾種數據庫權限。完整的數據庫權限列表將在 中與 DM 預定義角色一起進行介紹。表 3.1 常用的幾種數據庫權限數據庫權限說明CREATE TABLE在自己的模式中創建表的權限CREATE VIEW在自己的模式中創建視圖的權限CREATE USER創建用戶的權限CREATE TRIGGER在自己的模式中創建觸發器的權限ALTER USER修改用戶的權限ALTER DATABASE修改數據庫的權限CREATE PROCEDURE在自己模式中創建存儲程序的權限不同類型的數據庫對象,其相

47、關的數據庫權限也不相同。例如,對于表對象,相關的數據庫權限包括:CREATE TABLE:創建表CREATE ANY TABLE:在任意模式下創建表ALTER ANY TABLE:修改任意表DROP ANY TABLE:刪除任意表INSERT TABLE:插入表記錄INSERT ANY TABLE:向任意表插入記錄UPDATE TABLE:更新表記錄UPDATE ANY TABLE:更新任意表的記錄DELETE TABLE:刪除表記錄DELETE ANY TABLE:刪除任意表的記錄SELECT TABLE:查詢表記錄SELECT ANY TABLE:查詢任意表的記錄REFERENCES TA

48、BLE:引用表REFERENCES ANY TABLE:引用任意表DUMP TABLE:導出表DUMP ANY TABLE:導出任意表GRANT TABLE:向其他用戶進行表上權限的授權GRANT ANY TABLE:向其他用戶進行任意表上權限的授權而對于存儲程序對象,其相關的數據庫權限則包括:CREATE PROCEDURE:創建存儲程序CREATE ANY PROCEDURE:在任意模式下創建存儲程序DROP PROCEDURE:刪除存儲程序DROP ANY PROCEDURE:刪除任意存儲程序EXECUTE PROCEDURE:執行存儲程序EXECUTE ANY PROCEDURE:執行

49、任意存儲程序GRANT PROCEDURE:向其他用戶進行存儲程序上權限的授權GRANT ANY PROCEDURE:向其他用戶進行任意存儲程序上權限的授權需要說明的是,表、視圖、觸發器、存儲程序等對象為模式對象,在默認情況下對這些對象的操作都是在當前用戶自己的模式下進行的。如果要在其他用戶的模式下操作這些類型的對象,需要具有相應的 ANY 權限。例如,要能夠在其他用戶的模式下創建表,當前用戶必須具有 CREATE ANY TABLE 數據庫權限,如果希望能夠在其他用戶的模式下刪除表, 必須具有 DROP ANY TABLE 數據庫權限。對象權限對象權限主要是對數據庫對象中的數據的訪問權限,主

50、要用來授予需要對某個數據庫對象的數據進行操縱的數據庫普通用戶。表 3.2 列出了主要的對象權限。表 3.2 常用的對象權限數據庫對象類型對象權限表視圖存儲程序包類類型序列目錄域SELECTINSERTDELETEUPDATEREFERENCESDUMPEXECUTEREADWRITEUSAGESELECT、INSERT、DELETE 和 UPDATE 權限分別是針對數據庫對象中的數據的查詢、插入、刪除和修改的權限。對于表和視圖來說,刪除操作是整行進行的,而查詢、插入和修改卻可以在一行的某個列上進行,所以在指定權限時,DELETE 權限只要指定所要訪問的表就可以了,而 SELECT、INSERT

51、 和 UPDATE 權限還可以進一步指定是對哪個列的權限。表對象的 REFERENCES 權限是指可以與一個表建立關聯關系的權限,如果具有了這個權限,當前用戶就可以通過自己的一個表中的外鍵,與對方的表建立關聯。關聯關系是通過主鍵和外鍵進行的,所以在授予這個權限時,可以指定表中的列,也可以不指定。存儲程序等對象的 EXECUTE 權限是指可以執行這些對象的權限。有了這個權限,一個用戶就可以執行另一個用戶的存儲程序、包、類等。目錄對象的 READ 和 WRITE 權限指可以讀或寫訪問某個目錄對象的權限。域對象的 USAGE 權限指可以使用某個域對象的權限。擁有某個域的 USAGE 權限的用戶可以在

52、定義或修改表時為表列聲明使用這個域。當一個用戶獲得另一個用戶的某個對象的訪問權限后,可以以“模式名.對象名”的形式訪問這個數據庫對象。一個用戶所擁有的對象和可以訪問的對象是不同的,這一點在數據字典視圖中有所反映。在默認情況下用戶可以直接訪問自己模式中的數據庫對象,但是要訪問其他用戶所擁有的對象,就必須具有相應的對象權限。對象權限的授予一般由對象的所有者完成,也可由 SYSDBA 或具有某對象權限且具有轉授權限的用戶授予,但最好由對象的所有者完成。角色管理角色是一組權限的組合,使用角色的目的是使權限管理更加方便。假設有 10 個用戶, 這些用戶為了訪問數據庫,至少擁有 CREATE TABLE、

53、CREATE VIEW 等權限。如果將這些權限分別授予這些用戶,那么需要進行的授權次數是比較多的。但是如果把這些權限事先放在一起,然后作為一個整體授予這些用戶,那么每個用戶只需一次授權,授權的次數將大大減少,而且用戶數越多,需要指定的權限越多,這種授權方式的優越性就越明顯。這些事先組合在一起的一組權限就是角色,角色中的權限既可以是數據庫權限,也可以是對象權限, 還可以是別的角色。為了使用角色,首先在數據庫中創建一個角色,這時角色中沒有任何權限。然后向角色中添加權限。最后將這個角色授予用戶,這個用戶就具有了角色中的所有權限。在使用角色的過程中,可以隨時向角色中添加權限,也可以隨時從角色中刪除權限

54、,用戶的權限也隨之改變。如果要回收所有權限,只需將角色從用戶回收即可。角色的創建與刪除DM 預定義角色在 DM 數據庫中有兩類角色,一類是 DM 預設定的角色,一類是用戶自定義的角色。DM 提供了一系列的預定義角色以幫助用戶進行數據庫權限的管理。預定義角色在數據庫被創建之后即存在,并且已經包含了一些權限,數據庫管理員可以將這些角色直接授予用戶。在“三權分立”和“四權分立”機制下,DM 的預定義角色及其所具有的權限是不相同的。表 3.3 和表 3.4 分別列出了“三權分立”和“四權分立”機制下常見的系統角色及其簡單介紹,完整的預定義角色權限列表請參見附錄 1 和附錄 2。表 3.3 “三權分立”

55、常見的數據庫預設定的角色角色名稱角色簡單說明DBADM 數據庫系統中對象與數據操作的最高權限集合,擁有構建數據庫的全部特權, 只有 DBA 才可以創建數據庫結構RESOURCE可以創建數據庫對象,對有權限的數據庫對象進行數據操縱,不可以創建數據庫結構PUBLIC不可以創建數據庫對象,只能對有權限的數據庫對象進行數據操縱DB_AUDIT_ADMIN數據庫審計的最高權限集合,可以對數據庫進行各種審計操作,并創建新的審計用戶DB_AUDIT_OPER可以對數據庫進行各種審計操作,但不能創建新的審計用戶DB_AUDIT_PUBLIC不能進行審計設置,但可以查詢審計相關字典表DB_POLICY_ADMI

56、N數據庫強制訪問控制的最高權限集合,可以對數據庫進行強制訪問控制管理,并創建新的安全管理用戶DB_POLICY_OPER可以對數據庫進行強制訪問控制管理,但不能創建新的安全管理用戶DB_POLICY_PUBLIC不能進行強制訪問控制管理,但可以查詢強制訪問控制相關字典表表 3.4 “四權分立”常見的數據庫預設定的角色角色名稱角色簡單說明DBA擁有構建數據庫的全部特權,只有 DBA 才可以創建數據庫結構RESOURCE可以創建和刪除角色PUBLIC只能查詢相關的數據字典表DB_AUDIT_ADMIN數據庫審計的最高權限集合,可以對數據庫進行各種審計操作,并創建新的審計用戶DB_AUDIT_OPE

57、R可以對數據庫進行各種審計操作,但不能創建新的審計用戶DB_AUDIT_PUBLIC不能進行審計設置,但可以查詢審計相關字典表DB_POLICY_ADMIN數據庫強制訪問控制的最高權限集合,可以對數據庫進行強制訪問控制管理,并創建新的安全管理用戶DB_POLICY_OPER可以對數據庫進行強制訪問控制管理,但不能創建新的安全管理用戶DB_POLICY_PUBLIC不能進行強制訪問控制管理,但可以查詢強制訪問控制相關字典表DB_OBJECT_ADMIN可以在自己的模式下創建各種數據庫對象并進行數據操縱,也可以創建和刪除非模式對象DB_OBJECT_OPER可以在自己的模式下創建數據庫對象并進行數

58、據操縱DB_OBJECT_PUBLIC不可以創建數據庫對象,只能對有權限的數據庫對象進行數據操縱我們可以認為“三權分立”安全機制將用戶分為了三種類型,“四權分立”安全機制將用戶分為了四種類型,每種類型又各對應三種預定義角色。如:DBA 類型對應 DBA、RESOURCE、PUBLIC 預定義角色;AUDITOR 對應 DB_ADUTI_ADMIN、DB_AUDIT_OPER、DB_AUDIT_PUBLIC 預定義角色;SSO 對應 DB_POLICY_ADMIN、DB_POLICY_OPER、DB_POLICY_PUBLIC 預定義角色;DBO 對應 DB_OBJECT_ADMIN、DB_OB

59、JECT_OPER、DB_OBJECT_PUBLIC 預定義角色。初始時僅有管理員具有創建用戶的權限,每種類型的管理員創建的用戶缺省就擁有這種類型的 PUBLIC 預定義角色,如 SYSAUDITOR 新創建的用戶缺省就具有DB_AUDIT_PUBLIC 角色。之后管理員可根據需要進一步授予新建用戶其他預定義角色。管理員也可以將“CREATE USER”權限轉授給其他用戶,這些用戶之后就可以創建新的用戶了,他們創建的新用戶缺省也具有與其創建者相同類型的 PUBLIC 預定義角色。限制 DBA 的“ANY”權限從附錄 1 和附錄 2 的表中我們可以看到,缺省情況下,DBA 角色擁有許多的“ANY

60、”權限,如 DROP ANY TABLE、INSERT ANY TABLE 等等。在 DM 安全版本下,提供了一種DM8 安全管理 PAGE 20限制 DBA 的“ANY”權限的方法。只有具有 DB_POLICY_ADMIN 角色的用戶才能限制 DBA的“ANY”權限,通過執行下面的系統過程來實現:VOIDSP_RESTRICT_DBA(FLAGINT);參數 FLAG 置為 1 表示限制 DBA 的“ANY”權限,此過程執行后所有的 DBA 用戶將不再具有“ANY”權限;FLAG 置為 0 表示不限制 DBA 的“ANY”權限。創建角色具有“CREATE ROLE”數據庫權限的用戶也可以創建

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論