程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server與Oracle數據庫在安全性上的異同(1)

SQL Server與Oracle數據庫在安全性上的異同(1)

編輯:關於SqlServer
在業界,普遍認為Oracle數據庫的安全性要比SQL Server數據庫高。下面筆者就來談談這兩種數據庫在安全性設計上面的異同。掌握好這些內容,對於我們進行數據庫安全方面的設計與管理,有著舉足輕重的作用。
一、角色到用戶的授權。
現在很多應用軟件,包括數據庫系統,都采用了角色到用戶的授權體系。也就是說,先給一個角色進行授權,然後再把用戶加入到這個角色中,讓其擁有這個角色的權限。
如我們在數據庫設計的時候,一般至少需要兩種角色,一種是系統管理員角色,這種角色具有對數據庫系統進行管理,如表的建立與刪除、用戶的建立與修改等等。 另外一種是普通用戶的角色,其可以對表進行插入、修改、刪除記錄等等的操作。然後,我們建立兩個帳戶,一個是數據庫管理員帳戶,讓其隸屬於管理員角色;再 建立一個用戶帳號,讓其歸屬於用戶角色。如此,不用給用戶設置特別的權限,他們就從他們的角色中,繼承了相關的權限。這就是基於角色-用戶的權限管理體 系。
這個權限管理體系,兩種數據庫都是支持的,只不過具體的叫法有差異。
在SQL Sever數據庫中,其沿用的是微軟操作系統的叫法,把角色稱做組。其實,我們在給操作系統定義用戶與權限的時候,也是采用這種方法,我們先建立一個組, 再給這個組賦予特定的權限,然後,再建立一個用戶帳號加入到這個組中即可。雖然兩個數據庫的叫法不同,但是,其本質是一樣的,換湯不換藥而已。
兩者的差異主要體現在對特定角色的授權方面。
二、角色的授權。
兩個數據庫雖然在“角色-授權” 方面雷同,但在具體角色權限的分配上,還是有比較大的差異。用一句話來總結,就是Oracle在權限的分配上,要比SQL Server數據庫細。Oracle在權限控制方面,基本上可以細化到每個步驟。
如在用戶管理上面,Oracle數據庫可以把創建用戶帳號的權利給某個組,但是,這個組卻沒有刪除帳號的權利。而微軟的數據庫中,則一般是把用戶管理的權 限,包括用戶創建與刪除當作一個權限賦予給某個組,而不能把他們分開。也就是說,一個組若具有用戶帳號管理權限的話,其不僅可以創建用戶帳號,而且,也可 以刪除用戶帳號。也就是說,微軟的SQL Server數據庫在權限設計上,沒有分得像Oracle那麼細。正因為如此,所以Oracle數據庫在權限管理上面,要比SQL Server數據庫靈活。
不光在帳戶管理上如此,數據庫很多對象權限的管理,也有類似現象。如對於存儲過程的管理,對於表格的管理等等。甲骨文的Oracle數據庫在權限劃分上,比其他數據庫都要細。
三、對用戶進行獨立授權。
除了可以根據角色進行授權,Oracle數據庫還可以在用戶帳號的級別上直接跟用戶進行授權。在SQL Server數據庫上也有類似的功能,但是,光從這方面說,前者要比後者靈活。如Oracle數據庫中具有的“ 對象授權”功能,在SQL Server數據庫中就無法實現。
1、 在用戶口令上,Oracle數據庫要比SQL Server數據庫安全性更高。
眾所周知,用戶口令與帳號是數據庫安全的第一道保障。如在建立Oracle數據庫的用戶名的時候,默認情況下,其有密碼復雜性驗證設置。如果我們在建立用 戶名的時候,把密碼設置成為“123456”,Oracle數據庫不會接受。因為它認為純數字的密碼過於簡單,容易被破解。而在微軟的SQL Server數據庫中,默認情況下沒有這方面的限制。
2、 用戶建立默認權限不同。
這兩個數據庫都可以至少通過兩種方式建立用戶名。一是通過圖形化的界面建立用戶名與帳號。如Oracle數據庫可以通過EM,即浏覽器建立用戶帳號;而 SQL Server數據庫則可以通過企業管理器建立用戶帳號。另外一個是可以通過命令行,也就是說,通過SQL 語句建立用戶名。
從SQL Server數據庫來說,這兩種建立方式沒有什麼不同。但是,甲骨文的Oracle數據庫還是有比較大的差異,主要體現在默認權限的不同。在利用浏覽器建 立用戶帳號的時候,默認就具有連接數據庫的權限。而若在命令行中建立用戶帳號,除非你明確給其指定其具有連接數據庫的權限,否則的話,這個帳戶是不能連接 到數據庫的。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved