2011-03-23 174 views
1

我一直在用visual studio和sql server express構建我的web應用程序,現在我正在將它部署到服務器上。我需要更改連接字符串設置連接字符串

這是我有:

<add name="MySiteDBConnectionString" 
    connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MySiteDB.mdf;Integrated Security=True;User Instance=True" 
    providerName="System.Data.SqlClient" /> 

這是我需要來取代它:

<add name="LocalSqlServer" 
    connectionString="Data Source=DBServerName;Integrated Security=false;Initial Catalog=DBName;User ID=DBLogin;Password=DBPassword" 
    providerName="System.Data.SqlClient" /> 

的問題是,我不知道甚至在哪裏設置數據庫的密碼。什麼是集成安全性? 我正在使用linq-to-sql,我是否也需要在dbml文件中進行一些更改?

感謝您的一些建議。

+2

這不值得回覆,但http://www.connectionstrings.com/sql-server-2008是連接字符串信息的好資源! – Prisoner 2011-03-23 02:30:58

回答

2

如果您未使用集成安全性,則需要在數據庫服務器本身上設置用戶和密碼。如果您使用的是共享主機,則可能會爲您提供。然後,您可以用您的憑證替換DBLogin和DBPassword。

集成安全性使用您的Windows登錄名/密碼詳細信息對數據庫進行身份驗證。

如果你自己沒有傳入連接字符串,你需要使用linq to sql來使用設計器來更改到新數據庫的連接(或者只是覆蓋配置文件中的那個連接)。

+0

好吧,我通過了這個障礙。我也使用ASPNETDB.mdf文件,並將其附加到網站上。在我的本地機器上,沒有連接字符串。在服務器上,我收到「無法找到存儲過程'dbo.aspnet_CheckSchemaVersion'」。我猜我需要用創建一個新的標籤。我爲這個名字做了什麼? – frenchie 2011-03-23 02:49:10

+0

@frenchie - 'name'參數實際上應該和原來的相同。你的程序用來查找要使用哪個連接字符串的關鍵字。移動到生產站點時,只有連接字符串的值應該更改。 – tvanfosson 2011-03-23 02:59:13

+0

但我沒有爲第二個數據庫文件指定一個名稱屬性。 – frenchie 2011-03-23 02:59:56

0

「集成安全性」模式是以前稱爲「使用可信連接」的模式:它使用當前登錄的Windows用戶的憑據(在這種情況下,很可能是Web應用程序運行時的帳戶,或者有時計算機帳戶)作爲其登錄憑證。

0

集成安全性意味着它將使用網站(應用程序池)運行的憑據訪問數據庫。您需要設置SQL服務器才能允許此帳戶訪問權限讀取/寫入您的表格才能使其工作。如果您的網站設置爲在匿名網絡帳戶下運行,那麼情況就不太可能如此。如果您的網站在域帳戶下運行,那麼您可能需要使用集成安全性。

如果您未使用集成安全性,則您的數據庫管理員將爲您的應用程序設置一個SQL登錄名。這是您需要在連接字符串中使用的ID /密碼。可能已經建立了多個帳戶,一個管理帳戶,一個讀/寫帳戶,一個只讀帳戶,執行SP帳戶(這些帳戶描述分配給帳戶的權限,不一定是他們的名字)。在這種情況下,選擇適當的 - 這幾乎肯定不是管理員帳戶,除非您的DBA對安全性一無所知。如果使用User ID=...;Password=...格式,則可以省略Integrated Security=false,因爲它將採用SQL登錄帳戶和密碼。如果您使用User ID=...;Password=...格式,則可以省略Integrated Security=false,因爲它將採用SQL登錄帳戶和密碼。

+0

好的,這已清理完畢。該網站還運行一個名爲ASPNETDB.mdf的文件。在web.config文件中沒有此數據庫的連接字符串,並且出現錯誤無法找到存儲過程'dbo.aspnet_CheckSchemaVersion。主機提供商正在給出一個連接字符串,但我想知道我需要爲標籤添加什麼內容。謝謝。 – frenchie 2011-03-23 02:52:41