數(shù)據(jù)庫管理:SQL Server 2008安全性探討
Ruby 發(fā)表于:12年09月06日 11:18 [轉(zhuǎn)載] DOIT.com.cn
固定數(shù)據(jù)庫角色
每個SQL Server數(shù)據(jù)庫都有一系列固定數(shù)據(jù)庫角色,可用于在必要時把權(quán)限委托給用戶。和固定服務(wù)器角色一樣,對于固定數(shù)據(jù)庫角色來說,唯一可以改變的就是成員資格。用戶定義的數(shù)據(jù)庫角色對管理權(quán)限和對數(shù)據(jù)庫中的資源的訪問提供了更多的控制。在使用基于角色的安全模型時,可能京城發(fā)現(xiàn)內(nèi)置主體(比如 Windows中的組或SQL中的角色)提供了過得uod訪問權(quán)限,或者沒有提供足夠的權(quán)限。在這種情況下,可以創(chuàng)建用戶定義的角色,控制整個一組用戶對安全對象的訪問。
- USE AdventureWorks2008 CREATE ROLE SalesStaff AUTHORIZATION Carol; GO
- USE AdventureWorks2008 ALTER ROLE SalesStaff WITH NAME=SalesStaffRole; GO
- USE AdventureWorks2008 DROP ROLE SalesStaffRole; GO
- USE AdventureWorks2008 EXEC sp_addrolemember 'db_datareader','Carol'; GO
- USE AdventureWorks2008 EXEC sp_droprolemember 'db_datareader','Carol'; GO
另外一種可以用來幫助保護(hù)數(shù)據(jù)庫環(huán)境的角色是應(yīng)用程序角色。應(yīng)用程序角色和標(biāo)準(zhǔn)的角色類型截然不同,他們沒有成員,可以而且應(yīng)該被設(shè)置為使用密碼進(jìn)行身份驗(yàn)證。當(dāng)運(yùn)行一個特定的應(yīng)用程序的所有用戶必須采用同樣的數(shù)據(jù)訪問時,通常使用應(yīng)用程序角色。應(yīng)用程序可以不需要提示用用提供用戶名和密碼就實(shí)例化應(yīng)用程序角色,從而避免了依賴于個人用戶是否擁有適當(dāng)?shù)脑L問權(quán)限讓應(yīng)用程序正常工作。
- USE AdventureWorks2008 CREATE APPLICATION ROLE SalesApp WITH PASSWORD='P@www1rd',DEFAULT_SCHEMA=Sales; GO
- USE AdventueWorks2008 GO
- DECLARE @cookie varbinary(8000);
- EXEC sp_setapprole 'SalesApp','P@ssw0rd',@fCreateCookie=true,@cookie=@cookie OUTPUT; GO
- SELECT USER_NAME();
一旦執(zhí)行了上述腳本,該連接執(zhí)行的所有活動都將在該應(yīng)用程序角色下操作。當(dāng)關(guān)閉連接時,應(yīng)用程序角色會話也終止。通過ALTER APPLICATION ROLE語句,可以更改應(yīng)用程序角色的名稱、密碼和默認(rèn)架構(gòu)。
- USE AdventureWorks2008 ALTER APPLICATION ROLE SalesApp WITH NAME=OrderEntry,PASSWORD='newP@ss0rd'; GO
- USE AdventureWorks2008 DROP APPLICATION ROLE OrderEntry; GO
權(quán)限
在對象或資源上定義權(quán)限的語句會定義一個權(quán)限狀態(tài)、一個操作、獎項哪個對象應(yīng)用權(quán)限和操作,以及權(quán)限和動作將應(yīng)用于哪個安全主體。首先,需要知道基本上有三種權(quán)限狀態(tài):GRANT,GRANT_W_GRANT和DENY。用于控制權(quán)限狀態(tài)的三個命令為GRANT,REVOKE和DENY。
SQL Server 2008使用一個分層的安全模型,允許指定可在服務(wù)器、數(shù)據(jù)庫、架構(gòu)或者對象級別授予的權(quán)限。也可以在表和視圖內(nèi)為選定列指派權(quán)限。在保護(hù)數(shù)據(jù)庫服務(wù)器時,應(yīng)使用兩個關(guān)鍵策略:在授權(quán)時應(yīng)當(dāng)采用的第一個策略為”最小特權(quán)原則“,這一策略規(guī)定只向用戶提供適當(dāng)?shù)臋?quán)限進(jìn)行操作。通過對數(shù)據(jù)庫環(huán)境做出這樣嚴(yán)格的限制,可以提供一個能最小化服務(wù)器的受攻擊面,同時又維護(hù)運(yùn)行功能的解決方案。第二個策略是深度防御。好的安全實(shí)現(xiàn)方案應(yīng)在數(shù)據(jù)庫的所有層上提供安全性。這可能包括針對客戶機(jī)和服務(wù)器之間的通信采用IPSec或SSL,在身份驗(yàn)證服務(wù)器上使用強(qiáng)密碼加密以及在表或視圖中配置列級權(quán)限。
公司簡介 | 媒體優(yōu)勢 | 廣告服務(wù) | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯(lián)系我們 | 會員注冊 | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.