【MSSQL】SQL Server 設置用戶只能查看並訪問特定數據庫


#背景

  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 設置用戶只能查看並訪問特定數據庫
歡迎經常來轉轉,轉載請注明出處!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM