2011-07-14 99 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 –

相關問題