當(dāng)在服務(wù)器上運行SQL Server 時,我們總是要想方設(shè)法去使SQL Server 免遭非法用戶的侵入,拒絕其訪問數(shù)據(jù)庫,保證數(shù)據(jù)的安全性。SQL Server 提供了強大的內(nèi)置的安全性和數(shù)據(jù)保護,來幫助實現(xiàn)這種理所當(dāng)然的要求。從前面的介紹中我們可以看出SQL Server 提供
當(dāng)在服務(wù)器上運行SQL Server 時,,我們總是要想方設(shè)法去使SQL Server 免遭非法用戶的侵入,拒絕其訪問數(shù)據(jù)庫,保證數(shù)據(jù)的安全性。SQL Server 提供了強大的內(nèi)置的安全性和數(shù)據(jù)保護,來幫助實現(xiàn)這種理所當(dāng)然的要求。從前面的介紹中我們可以看出SQL Server 提供了從操作系統(tǒng),SQL ServerE, 數(shù)據(jù)庫到對象的多級別的安全保護。其中也涉及到角色、數(shù)據(jù)庫用戶、權(quán)限等多個與安全性有關(guān)的概念。現(xiàn)在我們面臨的問題就是如何在SQL Server 內(nèi)把這些不同的與安全性有關(guān)的組件結(jié)合起來,充分地利用各種組件的優(yōu)點,考慮到其可能存在的缺點來揚長避短,制定可靠的安全策略。使SQL Server 更健壯,更為“不可侵犯”。
下面我們將介紹幾種安全性管理策略,您應(yīng)該做的就是看懂并理解這些策略方法,然后將它們簡單地結(jié)合到一起就可以了。
1 使用視圖作為安全機制
在游標和視圖一章我們已經(jīng)提到視圖可以做為一種安全機制的主要原因在于視圖是一張?zhí)摫?而且它是由查詢語句來定義的,是一個數(shù)據(jù)結(jié)果集,通過視圖,用戶僅能查詢修改他所能看到的數(shù)據(jù),其它的數(shù)據(jù)庫或表對于該用戶既不可見也無法訪問。通過視圖的權(quán)限設(shè)置,用戶只具有相應(yīng)的訪問視圖的權(quán)限,但并不具有訪問視圖所引用的基本表的相應(yīng)權(quán)限。
通過使用不同的視圖并對用戶授予不同的權(quán)限,不同的用戶可以看到不同的結(jié)果集,可以實現(xiàn)行級或列級的數(shù)據(jù)安全性。下面的幾個例子說明了視圖是如何實現(xiàn)數(shù)據(jù)安全性。
2 使用了行級、列級別安全性的視圖
例14-18: 在該例中某一銷售點只能查看它自己的銷售信息。我們使用pubs 數(shù)據(jù)庫中的sales 表。
首先創(chuàng)建視圖
3 視圖與權(quán)限結(jié)合
如果將訪問視圖的權(quán)限授予給用戶,這樣即使該用戶不具有訪問視圖所引用的基本表的權(quán)限,但其仍可以從中查看相應(yīng)的數(shù)據(jù)信息。
視圖與權(quán)限相結(jié)合究竟能帶來什么好處呢?下面我們舉一個例子來進行說明。首先假設(shè)用戶A 對sales 表的payterms 列沒有SELECT 權(quán)限,對其它列有且僅有SELECT 權(quán)限,如果要查看其它銷售信息不能使用這樣的語句:
select * from sales
而必須指出其余列的列名。這就要求用戶了解表的結(jié)構(gòu),通常來說讓用戶了解表結(jié)構(gòu)是一件很不聰明的事,那么如何解決這一問題呢?
很簡單如果創(chuàng)建一個視圖view1, 該視圖包含除payterms 列外的所有列,并且將 SELECT 權(quán)限授予用戶A, 這樣用戶A 就可以執(zhí)行語句:select * from view1, 從而查看到銷售信息。
4 使用存儲過程作為安全機制
如果用戶不具有訪問視圖和表的權(quán)限,那么通過存儲過程仍能夠讓其查詢相應(yīng)的數(shù)據(jù)信息,實現(xiàn)的方法很簡單,只要讓該用戶具有存儲過程的EXEC 權(quán)限就可以了。當(dāng)然要確保該存儲過程中包含了查詢語句。比如可創(chuàng)建下面的存儲過程:
create procedure selsales as
select * from sales
然后將存儲過程的EXEC 權(quán)限授予用戶,當(dāng)用戶執(zhí)行該存儲過程時就可以查看到相應(yīng)信息。
使用存儲過程的優(yōu)點在于不必對視圖和表的訪問權(quán)限進行分配。
小結(jié)
本文主要討論了SQL Server 的安全性管理問題。涉及到數(shù)據(jù)庫用戶、角色、權(quán)限等作為一名系統(tǒng)管理員或安全管理員,在進行安全屬性配置前,首先要確定應(yīng)使用哪種身份認證模式。要注意恰當(dāng)?shù)厥褂胓uest 用戶和public 角色,并深刻了解應(yīng)用角色對于實現(xiàn)數(shù)據(jù)查詢和處理的可控性所展示出的優(yōu)點。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com