2016-07-29 94 views
0

我有一個用戶在SQL Server Management Studio中設置了用戶映射,因此他們只能訪問'ReportServer'數據庫。限制用戶查看/訪問默認數據庫

當我通過微軟Word連接到我的SQL Server中,我給出下面的選項數據庫連接:

enter image description here

我不希望這個用戶訪問,甚至是能夠看到master,tempdb或msdb數據庫,並且我沒有在該用戶的用戶映射中選擇它們。我如何設置它,以便用戶無法看到這些數據庫?

回答

0

使用DENY查看..

DENY VIEW ANY DATABASE TO testuser; 

步驟一般包括..
1.創建登錄的默認數據庫中的所有數據庫是登錄
2.創建用戶
3 .Deny view

DENY VIEW ANY DATABASE TO testuser; 

第一步:
//創建一個默認的數據庫登錄

1.USE [master] 
GO 
CREATE LOGIN loginame FROM WINDOWS WITH DEFAULT_DATABASE='testdb' 
GO 

第二步:
2.創建用戶在所有數據庫中..

use testdb 
create user username for loginname 

現在你可以將權限分配給該用戶像讀取,寫入......默認情況下,該用戶將只顯示一個數據庫。

第三步:

DENY VIEW ANY DATABASE TO testuser;--this should be repeated in all databases which you wish to hide from user.. 

如果你已位於現有login..Then您可以更改默認登錄該用戶像下面..

Exec sp_defaultdb @loginame='login', @defdb='testdb' 

參考文獻:
https://www.mssqltips.com/sqlservertip/2995/how-to-hide-sql-server-user-databases-in-sql-server-management-studio/

+0

喜那裏。這有助於擺脫msdb。但master和tempdb仍然存在。你提到我應該在所有我想隱藏的數據庫中重複該代碼,但是SQL Studio告訴我,我只能在master db中使用它。 – LeChuck

+0

創建登錄,它應該是主DB。對於TempDB你不需要創建登錄,默認情況下,所有用戶都將登錄。所以我建議創建Windows組的所有用戶,您可以使用郵件合併和做這個東西。 – TheGameiswar