1.在SQL Server Management Studio中為所屬的SQL服務器設置為SQL Server和Windows NT混合安全認證模式。其步驟如下:
(1) 在對象資源管理器中,用鼠標右擊需要設置的SQL服務器,在彈出的菜單中選擇“屬性”項,則出現服務器對話框。在“選擇頁”中選擇“安全性”。
(2)在“服務器身份驗證”中選擇“SQL Server和Windows身份驗證模式”單選項。
2.在SQL Server Management Studio中為自己建立一個服務器用戶、數據庫用戶和數據庫角色。
(1) 在對象資源管理器中展開服務器,用鼠標單擊“安全性”文件夾右側的‘+’,再用鼠標右擊“登錄名”,在彈出的菜單中選擇“新建登錄名”選項,則出現新建登錄名對話框。
(2選擇“選擇頁”中的“常規”選項,輸入登錄名(本例為user),選擇SQL Server身份驗證,並輸入用戶密碼。指定此登錄名可以訪問的數據庫(本例選中Test數據庫)。
(3)選擇“選擇頁”中的“服務器角色”選項,需要確定用戶所屬的服務器角色,在本例中采用缺省值public即可。
(4)選擇“選擇頁”中的“用戶映射”選項,需要確定映射到此登錄名的用戶,在本例中勾選Test。數據庫角色成員身份選擇public。
(5)單擊“確定”按鈕,即完成了創建登錄用戶的工作。
3.登錄新建用戶
(1)重新登錄SQL Server Management Studio,如圖6-5所示,選擇“SQL Server身份驗證”,用戶名為user,輸入用戶密碼,連接到SQL Server。
(2) 新建查詢,選擇Test數據庫,在查詢編輯窗口中鍵入SQL查詢命令“SELECT * FROM Student”。運行后,在運行結果窗口得到消息“拒絕了對對象 'Student'(數據庫 'Test',所有者 'dbo')的 SELECT 權限。”,可見用戶user沒有對Student表的SELECT權限。
3.要將Test數據庫的部分操作權限賦予數據庫用戶user,有兩種方法。
方法一:通過圖形界面方式
(1)斷開連接,以sa身份進入SQL Server Management Studio,展開服務器,用鼠標單擊“數據庫”文件夾右側的‘+’,用鼠標單擊Test數據庫文件夾右側的‘+’,用鼠標右擊“用戶”。在屏幕右側的“用戶”窗口中選擇“user”項,用鼠標右擊,在彈出的菜單中選擇“屬性”項,則出現數據庫用戶屬性對話框,選擇“安全對象”選項.
(2)點擊“搜索”按鈕,出現“添加對象”對話框,選擇“特定對象”,點擊“確定”按鈕.
(3)在“選擇對象”對話框中點擊“對象類型”按鈕,並點擊表,然后點擊確定。
(4)在“選擇對象”對話框中,點擊“瀏覽”按鈕,進入“查找對象”對話框。
(5)在“查找對象”對話框中勾選表Student,然后點擊“確定”按鈕,再次返回到“選擇對象”對話框。
(6)在安全對象設置對話框中,通過勾選dbo.Student對應的權限給用戶user授權。勾選“選擇”權限對應的授權框,再點擊“確定”按鈕,使得用戶user獲得Student表的查詢權限。
(7)驗證用戶user對Student表的操作權限。以用戶user的身份登錄,在SQL Server Management Studio中新建查詢,並在查詢編輯區中使用SQL語句查詢到Student表中的數據。但是如果以用戶user的身份查詢其他基本表,依然無法查看表中數據。
方法二:通過SQL的數據控制功能
對用戶user授權,必須是數據庫對象擁有者以上用戶授予。我們可以以系統管理員或sa用戶登錄。選擇“Test”數據庫,選擇“Test”數據庫,在查詢編輯區中輸入授權語句“GRANT SELECT ON SC TO [user];”,然后執行即可。
。
注意:user與關鍵字沖突,此時應當加入一個中括號。
5.使用角色來管理數據庫權限
創建角色,使該角色擁有一組權限,然后將角色授予一個指定的用戶。
方法一:通過圖形界面
創建角色R1,使該角色擁SC表的插入、更新權限,然后將角色R1授予指定的用戶user。
(1) 在“對象資源管理器”中展開服務器,用鼠標單擊“數據庫”文件夾左側的‘+’,用鼠標單擊Test數據庫文件夾左側的‘+’,展開數據庫文件夾,然后依次展開“安全性”、“角色”。鼠標右擊“數據庫角色”,在彈出的菜單中選擇“新建數據庫角色”項,則出現數據庫角色屬性對話框。
(2)在“選擇頁”中選擇“常規”選項,並在“角色名稱”一欄輸入R1。
(3)賦予角色權限的方法與賦予“數據庫用戶權限”的方法類似。在“選擇頁”中選擇“安全對象”選項。
(4)點擊“搜索”按鈕,出現“添加對象”對話框,選擇“特定對象”,點擊“確定”按鈕
(5)在“選擇對象”對話框中點擊“對象類型”按鈕。
(6)在“選擇對象類型”對話框中勾選“表”,然后點擊“確定”按鈕,返回到“選擇對象”對話框。
(7)在“選擇對象”對話框中,點擊“瀏覽”按鈕,進入“查找對象”對話框。
(8在“查找對象”對話框中勾選表SC,然后點擊“確定”按鈕,再次返回到“選擇對象”對話框。
(9)點擊“確定”按鈕,返回到安全對象設置對話框。
(10)在安全對象設置對話框中,通過勾選dbo.SC對應的權限給角色R1授權。勾選“選擇”,“插入”權限對應的授權框,點擊“確定”按鈕,使得角色R1獲得SC表的插入和修改權限。
(11)在“選擇頁”中選擇“常規”選項,點擊“添加”按鈕,實現將角色R1授予用戶。
(12)在“選擇數據庫用戶或角色”對話框中,點擊“瀏覽”按鈕,進入“查找對象”對話框。
(13)如圖6-26所示,在“查找對象”對話框中勾選user,點擊“確定”按鈕返回。
(14)點擊“確定”按鈕完成授權,實現把角色R1授予用戶user。
(15)驗證用戶user的操作權限。以用戶user的身份登錄,在SQL Server Management Studio中新建查詢,並在查詢編輯區中使用SQL語句,驗證用戶user的操作權限。
方法二:通過SQL的數據控制功能
對角色授權,必須是數據庫對象擁有者以上用戶授予。我們可以以系統管理員或sa用戶登錄SQL Server Management Studio。
創建角色R2,使該角色擁Student表的SELECT、INSERT權限,然后將角色R2授予指定的用戶U2和U3。(自行創建U2,U3)
1)在文本編輯區中使用語句sp_addrole @rolename='角色名'創建角色R2;
注意:選擇數據庫為test
2)用GRANT語句為角色R2賦予Student表的SELECT、INSERT權限;
3)在查詢分析器中使用語句sp_addrolemember '角色名','用戶名'將角色授予指定的用戶。
6.分別以用戶U1,U2,U3的身份進入數據庫,實現權限內的操作和權限外的操作,看看會得到什么結果?