2010-11-03 126 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

相关问题