2009-11-17 157 views
1

我需要設置SQL Server 2008的「丟棄」實例,供學生測試程序幾周。 SQL Server 2008運行在Windows Server 2008的虛擬實例上。服務器是,不是域的成員。需要連接到SQL Server 的客戶端計算機是域成員,學生帳戶也是如此。客戶端程序希望與Windows身份驗證連接。如果服務器在域中,這將非常簡單;儘管與學校的IT部門進行了長時間的討論,但這不會發生......允許匿名訪問SQL Server 2008

所以:我需要配置SQL Server以接受來自這些客戶端的連接。我不是SYS管理員,所以我最好的猜測(基於this article)是:

  1. 在Windows上啓用了Guest賬戶

  2. 添加「NT AUTHORITY \匿名登錄」被接受登錄在SQL Server

  3. 設置 「網絡訪問:允許anonymouse SID /名稱轉換」,在本地安全策略

  4. 添加註冊表項HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \控制\ LSA \打開OffAnonymousBlock並將其設置爲1

通過我的推算,應該已經完成​​了它,但客戶端仍然無法連接。任何人都可以給我一個讓這個工作的食譜?基本上告訴SQL Server接受來自任何人和每個人的連接?

p.s.沒有安全隱患:這是所有學校防火牆的後面,我們會在完成後重置實例。

+0

客戶端可能不使用Windows身份驗證嗎?數據庫身份驗證要簡單得多。 – brianegge 2009-11-17 07:36:31

+0

如果沒有其他方法,我可以訪問源代碼,搜索連接字符串並將其更改爲使用SQL身份驗證。 MySQL不是一種選擇,因爲這是一個廣泛使用Microsoft庫(SQLDMO等)的VB應用程序。 – 2009-11-17 11:49:33

回答

0

爲了讓兩臺機器使用Windows身份驗證連接,兩件事情之一必須是真實的:

  1. 機器是在同一個域中,或者
  2. 這些機器都在同一工作組和Windows帳戶在兩臺機器上都有相同的密碼

如果兩個都不是真的,那麼唯一的選擇是SQL身份驗證(SQL Server特定的用戶名和密碼)。

+0

匿名或訪客不可用? – 2009-11-17 12:36:44

+1

我不是100%確定的,但我不這麼認爲。在封面下,Windows身份驗證不使用字符串來驗證用戶;它使用SID。 AFAIK,內置帳戶的SID不同於一個工作組或域到另一個,因此不相關的機器無法確定哪個帳戶名稱確實是「匿名」的。下面的MS KB文章解釋了一些問題,但是從您在問題中所說的內容來看,我猜你已經看到了這一點(再加上它只適用於SQL 2005和Windows Server 2003):http:// support.microsoft.com/kb/839569 – RickNZ 2009-11-17 13:13:12

+0

由於這是一個「丟棄」實例,您是否考慮過在虛擬機上運行SQL 2008?這樣,虛擬機可以和你的學生在同一個工作組中。此外,它使事後重置非常容易。 – RickNZ 2009-11-17 13:16:06