2016-12-29 44 views
-3

我們用Windows登錄創建了一個Asp.Net應用程序。現在我想爲SQL Server中的所有2000 AD用戶帳戶創建登錄。如何添加整個AD帳戶作爲登錄到SQL Server?

有沒有人有一個想法如何創建所有的AD帳戶一氣呵成?

爲什麼這樣要求的:我們必須提供如下鏈接中提到的行級安全性:

http://www.sqlservercentral.com/articles/Stairway+Series/128866/

在此先感謝。

+9

爲什麼不創建AD安全組而不是試圖管理2000個用戶? – jradich1234

+0

標準做法是使用角色和組,而不是*個人用戶帳戶。此外 - 爲什麼你認爲你需要行級安全?你*無法通過使用視圖和分配權限給*他們而不是表格來做什麼?您是否嘗試將行安全性用作工作流功能的替代品? –

+0

是的。我不想檢查另一行。那麼只能在應用程序中檢查他/她的相關數據。例如:如果任何ASP網絡開發人員在開發或部署應用程序時只檢查他的數據。他/她無法檢查其他數據,但他仍然使用調試器 – nirav

回答

0

由於jradich1234表示,這裏真正的答案很可能是使用AD安全組對用戶進行批量處理,然後爲這些用戶創建SQL登錄名,這將遠遠少於您的總用戶數(甚至可能只有一個安全組做)。

但是,如果您希望爲大量AD用戶批量創建SQL登錄,則會建議將這些用戶的詳細信息導出到.csv文件或類似文件中,然後使用Excel生成所需的語句。

例如,假設我有5個用戶(而非2000年)我想創建SQL登錄爲:

DOMAIN\APerson 
DOMAIN\AnotherPerson 
DOMAIN\SomeoneElse 
DOMAIN\Me 
ANOTHERDOMAIN\Someone 

我會得到這些值轉換爲Excel或文本編輯器,並添加必要的附加SQL聲明做出CERATE LOGIN聲明:

CREATE LOGIN [DOMAIN\APerson]  FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english] GO 
CREATE LOGIN [DOMAIN\AnotherPerson] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english] GO 
CREATE LOGIN [DOMAIN\SomeoneElse] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english] GO 
CREATE LOGIN [DOMAIN\Me]    FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english] GO 
CREATE LOGIN [ANOTHERDOMAIN\Someone] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english] GO 

這可以通過各種方式通過將用戶名成一列,然後使用相鄰列周圍文本,複製靜態文本到全部完成,例如在Excel中細胞(意思是可以在幾秒鐘內完成,而不是手動輸入)。或者,您可以使用文本編輯器(如Notepad ++)並在換行符上執行查找/替換操作,以將文本附加到每行的開頭和結尾以獲得相同的結果。

如果你想還可以指定一個或多個角色,您將需要複製你的用戶名列表,並執行相同的過程:

ALTER SERVER ROLE [sysadmin] ADD MEMBER [DOMAIN\APerson] GO 
ALTER SERVER ROLE [sysadmin] ADD MEMBER [DOMAIN\AnotherPerson] GO 
ALTER SERVER ROLE [sysadmin] ADD MEMBER [DOMAIN\SomeoneElse] GO 
ALTER SERVER ROLE [sysadmin] ADD MEMBER [DOMAIN\Me] GO 
ALTER SERVER ROLE [sysadmin] ADD MEMBER [ANOTHERDOMAIN\Someone] GO 

同樣,如果你想創建數據庫用戶,你」我們需要以同樣的方式形成另一組聲明。

但是請您只需設置安全組,現在就可以更容易地實施來維護!

+0

是的。我不想檢查另一行。那麼只能在應用程序中檢查他/她的相關數據。例如:如果任何ASP網絡開發人員在開發或部署應用程序時只檢查他的數據。他/她仍然無法檢查其他數據,但他仍然使用調試器 – nirav

+0

如果您試圖阻止開發人員看到整個數據庫,因爲您不相信他們,我不認爲行級安全性是您的真正問題這裏。 – 3N1GM4

+0

然後提供解決方案。 – nirav