我有一個用戶在SQL Server Management Studio中設置了用戶映射,因此他們只能訪問'ReportServer'數據庫。限制用戶查看/訪問默認數據庫
當我通過微軟Word連接到我的SQL Server中,我給出下面的選項數據庫連接:
我不希望這個用戶訪問,甚至是能夠看到master,tempdb或msdb數據庫,並且我沒有在該用戶的用戶映射中選擇它們。我如何設置它,以便用戶無法看到這些數據庫?
我有一個用戶在SQL Server Management Studio中設置了用戶映射,因此他們只能訪問'ReportServer'數據庫。限制用戶查看/訪問默認數據庫
當我通過微軟Word連接到我的SQL Server中,我給出下面的選項數據庫連接:
我不希望這個用戶訪問,甚至是能夠看到master,tempdb或msdb數據庫,並且我沒有在該用戶的用戶映射中選擇它們。我如何設置它,以便用戶無法看到這些數據庫?
使用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'
喜那裏。這有助於擺脫msdb。但master和tempdb仍然存在。你提到我應該在所有我想隱藏的數據庫中重複該代碼,但是SQL Studio告訴我,我只能在master db中使用它。 – LeChuck
創建登錄,它應該是主DB。對於TempDB你不需要創建登錄,默認情況下,所有用戶都將登錄。所以我建議創建Windows組的所有用戶,您可以使用郵件合併和做這個東西。 – TheGameiswar