錢偉強
(陜西交通職業(yè)技術學院信息工程系,陜西 西安 710018)
SQL Server2005是微軟公司的一款關系型數(shù)據(jù)庫管理系統(tǒng),采用微軟公司在標準SQL語言基礎上改進而來的Transact-SQL語言作為其操作語言。雖然其性能和安全性不如甲骨文公司開發(fā)的關系-對象型數(shù)據(jù)庫管理系統(tǒng)Oracle,但憑借其自身相對低廉的價格,便易的操作性,以及對微軟的程序開發(fā)工具集——Visual Studo 2005的無縫支持,使其受到了中小企業(yè)、個人用戶及程序開發(fā)人員的青睞。這些優(yōu)點,使SQL Server2005占據(jù)數(shù)據(jù)庫產(chǎn)品市場第一的份額。
登錄用戶的身份驗證是SQL Server2005安全管理的第一道關。當用戶訪問數(shù)據(jù)庫服務器時,SQL Sever2005系統(tǒng)會對用戶的身份進行驗證。驗證成功的用戶方可允許連接訪問SQL Server實例,驗證失敗的用戶無法訪問服務器。對于登錄用戶的不同情況,SQL Server2005提供了兩種身份驗證模式:windows身份驗證模式,及windows身份驗證和SQL Server身份驗證共同作用的混合模式。
SQL Server2005利用與windows操作系統(tǒng)出自同門的優(yōu)勢,允許用windows操作系統(tǒng)的帳戶驗證作為SQL Server2005數(shù)據(jù)庫系統(tǒng)的登錄驗證。SQL Server數(shù)據(jù)庫服務器中可以保存受信任的windows系統(tǒng)用戶賬戶,當用戶以windows身份驗證模式登錄數(shù)據(jù)庫服務器時,SQL Server回叫windows系統(tǒng)以獲取該用戶的windows系統(tǒng)賬戶信息,檢查該windows賬戶是否是已保存的受信任賬戶,以決定該用戶是否可以登錄數(shù)據(jù)庫服務器。在windows身份驗證模式下,用戶不需要輸入賬號、密碼,只要是特定的受信任windows用戶就可以直接登錄服務器。
?
混合驗證模式即windows身份驗證模式和SQL Server身份驗證模式共同驗證。在混合驗證模式下,受信任的windows用戶可以使用windows身份驗證模式登錄數(shù)據(jù)庫服務器;而對于非受信任windows用戶或非windows系統(tǒng)用戶,數(shù)據(jù)庫服務器可事先注冊保存相應的登錄賬戶名和密碼,這部分用戶在登錄時須選擇SQL Server身份驗證,通過輸入用戶名和密碼進行驗證。混合驗證模式比windows身份驗證模式增加了安全性方面的選擇。
SQL Server2005安全管理的第二道關是數(shù)據(jù)庫用戶的管理。擁有登錄賬戶的用戶雖然可以登錄數(shù)據(jù)庫服務器,但登錄后,只能訪問SQL Server實例中的四個系統(tǒng)數(shù)據(jù)庫,而并不具備訪問實例上已有的用戶數(shù)據(jù)庫的權限,即無法訪問實例上的數(shù)據(jù)。若需要使登錄的用戶訪問某個數(shù)據(jù)庫中的數(shù)據(jù),則必須為其登錄賬戶創(chuàng)建該數(shù)據(jù)庫的數(shù)據(jù)庫用戶。讓登錄賬戶成為數(shù)據(jù)庫用戶稱為“映射”。一個登錄賬戶可以映射多個數(shù)據(jù)庫用戶,而一個數(shù)據(jù)庫用戶只對應一個登錄賬戶。數(shù)據(jù)庫用戶須在相應數(shù)據(jù)庫中創(chuàng)建,必須與一個登錄名相關聯(lián)。
用戶登錄服務器后,當其試圖訪問實例上的某個數(shù)據(jù)庫時,系統(tǒng)會在該數(shù)據(jù)庫的系統(tǒng)表sysusers中查找該登錄賬戶對應的數(shù)據(jù)庫用戶名。若該登錄賬戶沒有映射任何數(shù)據(jù)庫用戶,則系統(tǒng)將其統(tǒng)一映射為默認的Guest用戶。但如果該數(shù)據(jù)庫沒有Guest用戶或Guest用戶沒有設置任何權限,該用戶就無法訪問數(shù)據(jù)庫。
3.1 SQL Server2005權限種類
SQL Server的權限種類包括對象權限、語句權限和隱含權限。
3.1.1 對象權限:是指用戶對數(shù)據(jù)庫中表、視圖等對象的操作權。主要包括SELECT、INSERT、UPDATE、DELETE 等語句權限。
3.1.2 語句權限:是指是否允許執(zhí)行數(shù)據(jù)定義語句的權限。包括:CREATE DATABASE、CREATE TABLE、CREATE VIEW、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CRAETE RULE、BACKUP DATABASE、BACKUP LOG等。
3.1.3 隱含權限:是指由SQL Server預定義的服務器角色、數(shù)據(jù)庫角色、數(shù)據(jù)庫擁有者和數(shù)據(jù)庫對象擁有者所具有的權限。如數(shù)據(jù)庫對象擁有者可以對所擁有的對象執(zhí)行一切活動,擁有表的用戶可以查看、添加或刪除數(shù)據(jù),更改表定義,或控制允許其他用戶對表進行操作的權限。
3.2 部分數(shù)據(jù)庫對象的常用權限(見表1)
3.3 使用數(shù)據(jù)庫角色管理用戶權限
SQL Server2005中的數(shù)據(jù)庫角色分為兩類,一類是系統(tǒng)默認的固定數(shù)據(jù)庫角色,另一類就是由用戶自己創(chuàng)建的自定義數(shù)據(jù)庫角色。固定數(shù)據(jù)庫角色自動包含于每個新創(chuàng)建的數(shù)據(jù)庫,一共有10種,見表2所示:
管理員可以根據(jù)用戶對操作權限的需求分配其到固定的角色中,也可以自建新的數(shù)據(jù)庫角色并授予相應的權限從而滿足特定的權限需求。
保證數(shù)據(jù)庫安全是數(shù)據(jù)庫系統(tǒng)設計和管理的重中之重。SQL Server2005提供了全方面多層次的安全保護措施。合理地設置各層次的安全服務措施,制定切實有效地安全管理策略,不但可以提高數(shù)據(jù)庫的管理效率,更保障了數(shù)據(jù)庫中數(shù)據(jù)的安全。
[1]施伯樂,丁寶康,汪衛(wèi)編.數(shù)據(jù)庫系統(tǒng)教程[M].北京:高等教育出社.
[2]李春葆,曾平.Sql Server2000應用系統(tǒng)開發(fā)教程[M].北京:清華大學出版社.