2011-01-27 111 views
1

我已經創建了一個web部件,它在我開發它的虛擬機上工作得非常棒。Sharepoint Webpart

但是,當我嘗試在物理機器上運行相同的Web部件時,無法打開SQL連接,因爲網絡上的SQL Server是「分離」框。

我的物理,虛擬和SQL框在同一網絡上,但出於某種原因,這並不在我的物理機工作,

它拿出以下消息:登錄失敗,用戶NT AUTHORITY \ ANONYMOUS LOGON'

是什麼導致了這個問題?

+0

如果您的物理機上安裝了sql,請嘗試連接到位於虛擬機上的數據庫。 – 2011-01-27 10:36:12

+0

con.ConnectionString =「Server =」+ _ipAddress +「; Database =」+ _Database +「; Persist Security Info = True; User Id = username; Password = password; Trusted_Connection = True」; – 2011-01-27 11:10:17

回答

1

您指定User IdPassword,然後設置Trusted_ConnectionTrue,所以我想這集成的身份驗證使用 - 去除Trusted_Connection=True部分。

2

您正在使用集成安全性,這意味着當前用戶用於對數據庫服務進行身份驗證。在生產服務器上,使用匿名用戶執行Web部件代碼。並且(當然)這個用戶沒有權利訪問其他Web服務器文件的任何資源。

要避免此行爲,請使用SQL-Server安全性的專用帳戶。看到這個例子連接字符串:

connectionString="Data Source=SERVERHOSTNAME;Initial Catalog=YOURDATABASE;Persist Security Info=True;User ID=YOURUSER;Password=YOURPASSWORD"; 

一定要得到從生產數據庫管理員有效的登錄與適當的權限(如db_reader)數據庫。