2011-07-14 71 views
17

我想授予用户访问具有读写权限的特定数据库的权限。该用户已在域中可用,但不在数据库中。如何将用户的读取权限授予SQL Server中的数据库?

那么,我怎么能给他们创建一个新的用户和密码的访问?

有人告诉我,只需指定用户,域&即可让用户访问而不需要创建新用户和密码的数据库。

这是我正在实施的旧方法。它的工作原理,但它会创建一个新的登录名和用户,而不是使用一个可用的域:

use DBName; 
create login a_2 with password='Aa123'; 
create user a_2 for login a_2; 
grant insert to a_2; 
grant select to a_2; 

回答

47

这是一个过程分为两个步骤:

  1. 你需要创建一个登录到SQL Server的用户,基于其Windows帐户

    CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS; 
    
  2. 您需要授予此登录权限来访问数据库:

    USE (your database) 
    CREATE USER (username) FOR LOGIN (your login name) 
    

一旦你的用户在你的数据库,你可以给它你想要的,如任何权利您可以为其分配db_datareader数据库角色以读取所有表。

USE (your database) 
EXEC sp_addrolemember 'db_datareader', '(your user name)' 
+0

不幸的是,我不能v =创建基于windows帐户的登录。因为,用户的帐户只能在域上使用,它不能在Windows帐户上使用...所以,当我使用“从Windows”时,它表示 - >“Windows NT用户或组”aa.us \ bb'not found。再次检查名称。 “!!! 它无法看到它...所以,有没有办法让它看起来在域名,而不是Windows帐户? 注: 不用担心,我写我自己的域名和登录名) 非常感谢;) – Q8Y

+2

没关系“marc_s” ......我解决了这个问题......我缝我书面方式域名错误,现在它的工作:)非常感谢:)) – Q8Y

+2

当我忘记'为登录创建用户'时,我总是在这里结束!!)+1 –

相关问题