如何讓用戶只能訪問特定的數據庫(MSSQL)


背景

客戶的SQL Server實例上有多個廠商的數據庫,每個數據庫由各自的進行廠進行商維護,

為了限定不同廠商的維護人員只能訪問自己的數據庫,現需要給各個廠商限定權限,讓他們登錄SQL Server只能看到授權的數據庫而無法看到其他數據庫。

 

解決方案

1.先給不同的廠商創建不同的登錄名(如下以一個廠商為例)

image

 

 

2.將登錄名加入到public服務器角色中,然后點擊確定

image

 

3.將public服務器角色的屬性——>安全對象中取消查看所有數據庫的權限

或者執行如下SQL:

REVOKE VIEW ANY DATABASE TO [public]

 

4.將待授權的數據庫的dbowner指派給該用戶

Use [xjcs]
go
EXEC dbo.sp_changedbowner N'provider1'

 

 

此時用'provider1'登錄SQL Server,便只能看到指定的用戶數據庫了(系統數據庫除外)

image

 

 

 

 

說明:

我之前希望在第2個步驟中設置登錄名的用戶映射來實現這個需求,如下圖,但沒有效果,登錄到SQL Server后還是無法看到用戶數據庫,

所以才采用上述方法:

image

image


免責聲明!

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



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