在SQL Server Management Studio中授予用户数据库权限

在SQL Server Management Studio中,当我右键单击数据库并单击属性时,将打开一个窗口,显示用户对数据库的权限。 我最近添加了一个用户到活动目录,目的是在我的数据库上授予这个用户权限。 问题是,在活动目录中,我看到了很多用户,但在SQL Server Management Studio中,我只能看到这些用户中很less。 我刚刚创build的用户在search – >浏览或search确切名称时都不显示。 我究竟做错了什么? 不应该SQL Server能够连接到Active Directory来获取用户列表吗? 此外,似乎所有正在显示的用户都来自AD中的一个组…

编辑

只是表示感谢所有的答案…

答案和解决scheme摘要

用户需要添加到主要的安全 – >login文件夹之前,他们出现在特定的数据库的属性 – >权限 – >用户列表。 但是,由于我对SQL Server本身没有足够的权限,所以当我去到主login文件夹时,我看不到用户(即使他们在我的同事那里有更多的权限)。 但是由于我对数据库有足够的权限,我可以看到那里的用户,导致我的困惑。

您需要先将其Windows帐户添加到SQL Server实例。 转到实例的安全文件夹,而不是数据库。 添加你想要的用户作为新的login。 一旦它们被添加到SQL Server实例中,您可以为它们分配对各个数据库的权限。

你指的是数据库用户还是SQLlogin? 数据库用户基于SQLlogin,需要首先创build。 添加SQLlogin时,您可以select使用Windows身份validation或SQL身份validation。 如果您selectWindows身份validation,则可以浏览本地用户或组帐户或域用户或组帐户。 一旦你创build了login,你可以授予login访问权限的数据库,这将创build数据库中的用户。

用户和login不只是显示,他们必须创build。

基本上你应该做的是添加ADuser作为SQL Serverlogin(以便他将被authentication到服务器),并在数据库中创build一个与login关联的用户,并授予该用户执行任务的权限(读,写,更新等)在您的数据库(授权)。 你可以用这个东西来得到这个:

USE [master] GO CREATE LOGIN [Domain\User] FROM WINDOWS WITH DEFAULT_DATABASE=[master] GO USE [YourTargetDatabase] GO CREATE USER [Domain\User] FOR LOGIN [Domain\User] GO USE [YourTargetDatabase] GO EXEC sp_addrolemember N'db_datareader', N'Domain\User' GO USE [YourTargetDatabase] GO EXEC sp_addrolemember N'db_datawriter', N'Domain\User' GO 

有时您可以看到与任何login无关的用户,这是因为在另一台服务器上获取的数据库可能会在此处被恢复,或者login被删除而不删除关联的用户。