2010-11-03 85 views

回答

20
    使用Management Studio
  1. 連接到SQL Server實例
  2. 轉到安全性 - >登錄 - >(右鍵)新建登錄
  3. 填寫用戶信息
  4. 在用戶映射,選擇您想要的數據庫用戶能夠訪問和配置

UPDATE: 你也想轉到安全 - >服務器角色,併爲「公共」檢查 TSQL默認TCP/TSQL默認VIA/TSQL本地計算機/ TSQL命名管道 的權限,並刪除了「連接」權限

+1

Thanls爲您的答覆。我以這種方式創建了一個新用戶,試圖在SSMS2008中登錄他們,並且我可以完全訪問所有數據庫... – Curt 2010-11-03 09:50:54

+1

嗨,Curt - 這將通過公共或客人的默認訪問設置無論是服務器級還是數據庫級。請嘗試以上,如果這不起作用還有一些其他的事情,我可以建議(但上次我有這個問題,修復它) – Irfy 2010-11-03 10:00:09

+0

謝謝@lrfy:D – Curt 2010-11-03 10:17:23

1

對於其他人那裏知道如何做到這一點,我對SQL Server 2008 R2和更高版本以下解決方案:

USE master 
go 
DENY VIEW ANY DATABASE TO [user] 
go 

這將地址精確要求上述..

+0

該命令將阻止訪問所有50個數據庫,請提供其他所需的語句... – BiLaL 2015-10-11 15:20:18

36

我覺得這是我們喜歡做的事情非常多。

--Step 1: (create a new user) 
create LOGIN hello WITH PASSWORD='foo', CHECK_POLICY = OFF; 


-- Step 2:(deny view to any database) 
USE master; 
GO 
DENY VIEW ANY DATABASE TO hello; 


-- step 3 (then authorized the user for that specific database , you have to use the master by doing use master as below) 
USE master; 
GO 
ALTER AUTHORIZATION ON DATABASE::yourDB TO hello; 
GO 

,如果你已經創建了一個用戶,並通過做
使用[yourDB] CREATE USER打招呼的登錄之前,分配給該數據庫的Hello DEFAULT_SCHEMA = [DBO] GO

然後友好地將其刪除下面做,然後按照步驟

USE yourDB; 
    GO 
    DROP USER newlogin; 
    GO 

欲瞭解更多信息,請點擊相應的鏈接:

Hiding databases for a login on Microsoft Sql Server 2008R2 and above

+0

現在,如果你不能拒絕所有數據庫第一?相反,它只限制訪問一個特定的數據庫。 – 2016-11-30 20:30:32

相關問題