#背景
SQL Server實例上有多個服務商的數據庫,每個數據庫要由各自的服務商進行維護,
為了限定不同服務商商的維護人員只能訪問自己的數據庫,且不能看到其他服務商的數據庫,現需要給各個服務商商限定權限,讓他們登錄SQL Server只能看到授權的數據庫而無法看到其他數據庫。
解決方案
1、先給不同的服務商創建不同的登錄名(如下以一個服務商為例)
2.將登錄名加入到public服務器角色中
3.將public服務器角色的屬性——>安全對象中取消查看所有數據庫的權限
或者執行如下SQL:
REVOKE VIEW ANY DATABASE TO [public]
4.將待授權的數據庫的dbowner指派給該用戶
執行sql
USE ZYLTEST go EXEC dbo.sp_changedbowner N'zyl'
效果圖
注意:此處的設置不能手動取消,會有錯誤提示:
解決辦法,執行sql修改該數據庫的所有者
USE ZYLTEST go EXEC dbo.sp_changedbowner N'sa'
效果圖
5、此時用登錄名'zyl'登錄sql server,便只能看到指定的數據庫了
#TIPS
上述方案實現的是-“設置登錄用戶只能看到和操作特定數據庫”,如果你只想實現-“設置登錄用戶只能操作特定數據庫,但能看到所有數據庫,只是有的數據庫不能操作”
需要對上述方案稍作修改,具體步驟:
1、取消上述方案的第三步;
2、將上述方案的第四步修改為如下操作:
3、效果圖
可以看到所有的數據庫,但是無法查看未授權的數據內容,如圖提示
作者: | willingtolove |
本文鏈接: | SQL Server 設置用戶只能查看並訪問特定數據庫 |
歡迎經常來轉轉,轉載請注明出處! |