一需求
在管理數據庫過程中我們經常需要控制某個用戶訪問數據庫的權限比如只需要給這個用戶訪問某個表的權限甚至是CRUD的權限更小粒度的還可以去到某幾個字段的訪問權限寫這篇文章就是說明下這個操作過程
其實這只是SQL Server權限管理很簡單的一小塊有些地方並沒有深入理解和講述只是希望對一些剛入門的童鞋有幫助其它大俠就當是我當堂嚇一跳然後得啖笑(賭聖)
二操作步驟
首先進入數據庫級別的【安全性】【登錄名】【新建登錄名】
(圖新建登錄名)
在【常規】選項卡中如下圖所示創建登陸名並設置默認的數據庫
(圖設置選項)
在【用戶映射】選項卡中如下圖所示勾選需要設置的數據庫並設置【架構】點擊【確認】按鈕完成創建用戶的操作
(圖選擇對應數據庫)
現在我們就可以對TestLog數據庫中的User表進行權限的設置了【表】【 屬性】
(圖選擇對應表)
在【權限】選項卡中如下圖所示依此點擊【添加】【浏覽】【選擇對象】
(圖設置訪問表的用戶)
在上面點擊【確認】後我們就可以下面的列表中找到對應的權限如果你還想細化到列的權限的話右下角還有一個【列權限】的按鈕可以進行設置點擊【確認】按鈕就完成了這些權限的設置了
(圖權限列表)
現在就使用TestUser用戶登陸數據庫了登陸後如下圖所示現在只能看到一個表了
(圖效果)
三注意事項
在上面的第步驟中需要注意如果這裡沒有選擇對應的數據庫的話之後去TestLog數據庫中是找不到TestUser
(圖找不到TestUser用戶)
在上面的第步驟設置完TestLog數據後需要點擊【確認】按鈕完成創建用戶操作如果這個時候去設置【安全對象】是無法在【添加】【特定對象】【對象類型】【登陸名】【浏覽】中找到剛剛新建的TestUser用戶的
其實在數據庫級別的【安全性】創建的用戶是屬於全局的當設置了某個數據庫比如TestLog之後這個用戶就會出現在這個數據庫的【安全性】列表中 如果刪除TestLog這個用戶會出現下面的提示刪除了後這個用戶就無法登陸了需要去對應的數據庫中刪除用戶如果沒有刪除又創建是會報錯的
(圖刪除TestUser用戶)
在第步的【顯式權限】列表中如果選擇了【Control】這個選項那麼在【Select】中設置查詢【列權限】就沒有意義了查詢就不會受限制了如果設置【列權限】在正常情況下會顯示下圖的報錯信息
(圖效果)
在TestLog數據庫的【安全性】【TestUser】【屬性】【安全對象】【添加】【對象類型】這裡有更多關於數據庫級別的一些對象類型可以設置
(圖其它對象類型)
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22341.html