文章出處

背景

客戶的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


文章列表


不含病毒。www.avast.com
全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()