解決方案
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、效果圖
可以看到所有的數據庫,但是無法查看未授權的數據內容,如圖提示
原文鏈接:https://www.cnblogs.com/willingtolove/p/9122738.html