1.使用本機上的SQL Server Express 執行個體上的使用者執行個體。
使用者執行個體的連接配接建立了一個新的SQL Server 執行個體。此連接配接隻能是在本地SQL Server 2005執行個體上并且是通過命名管的windows驗證連接配接才有效。目的就是為了給使用者建立一個完全權限的Sql Server 執行個體和有限的計算機管理者權限。
文法格式:
Data Source=./SQLExpress;Integrated Security=true;AttachDbFilename=|DataDirectory|/mydb.mdf;Database=mydb;User Instance=true;
注意:
- 為什麼要帶上Database參數呢?因為如果有同名的資料庫已經被附加上啦,SQL Server将不會重新附加該資料庫。他将使用原資料庫作為要連接配接的對象。
- 要使用User Instance 功能,你要在sql server伺服器上啟用他。你可以通過執行“sp_configure 'user instances enabled', '1'”來啟用,執行“sp_configure 'user instances enabled', '0'”來禁用。
2.使用Windows身份驗證方式(無須使用者名和密碼)
文法格式:
Integrated Security=SSPI;Data Source=localhost;Initial Catalog=dbName;
3.使用Sql Server身份驗證方式
文法格式:
Data Source=localhost;Initial Catalog=dbName;User ID=sa;Password=;
在這裡要解釋幾個參數:
- Data Source=ServerName;
使用本地的SQL Server(“localhost” “127.0.0.1” “本機IP” “.”),如果想要使用遠端伺服器運作,應該在示例對象中把正确的伺服器賦給Data Source 屬性。
- Data Source=ServerName;Integrated Security=True;
Windows身份驗證使用Windows登入使用者身份連接配接資料庫,而SQL身份驗證要求顯式地指定SQL Server使用者ID和密碼。要想使用Windows身份驗證,必須在連接配接字元串中包括 Integrated Security 屬性:
預設情況下,Integrated Security = False ,也就是在預設情況下無法使用Windows身份驗證方式,隻能采用SQL Server身份驗證方式進行連接配接。Integrated Security=SSPI(Security Support Provider Interface,安全性支援提供者接口).在所有的Windows NT作業系統上(Windows NT 4.0、2000、XP,都支援值SSPI),它是使用Windows身份驗證時可以使用的惟一接口,相當于把Integrated Security 屬性值設定為True。
每一種身份驗證都有它的優點和缺點。Windows身份驗證使用單一的使用者資訊庫源,是以,不需要為資料庫通路去分别配置使用者。連接配接字元串不包含使用者ID和密碼,是以消除了把使用者ID和密碼暴露給未授權的使用者的危險。可以在Active Directory中管理使用者和他們的角色,而不必在SQL Server中顯式地配置他們的屬性。
Windows身份驗證的缺點是,它要求客戶通過Windows的本機安全性授權支援的安全通道去連接配接SQL Server。如果應用種序需要通過不安全的網絡(例如Internet)連接配接SQL Server,Windows身份驗證将不工作。此外,這種身份驗證方法也部分地把管理資料庫通路控制的責任從DBA身上轉移到了系統管理者身上,這在确定的環境中也許是一個問題。
(以上參考:http://www.cnblogs.com/lanse777/archive/2007/03/28/691757.html)
附錄(連接配接字串的關鍵字、内連接配接池說明,轉自VS2008 MSDN)
ConnectionString 中的關鍵字值的有效名稱
關鍵字 | 說明 | ||
Application Name | 應用程式的名稱,或者“.Net SqlClient Data Provider”(如果不提供應用程式名稱)。 | ||
Async | 如果設定為 true,則啟用異步操作支援。可識别的值為 true、false、yes 和no。 | ||
AttachDBFilename - 或 - extended properties - 或 - Initial File Name | 主資料庫檔案的名稱,包括可連接配接資料庫的完整路徑名。隻有具有 .mdf 擴充名的主資料檔案才支援 AttachDBFilename。 如果主資料檔案為隻讀,則附加操作将失敗。 該路經可以是絕對路徑,也可以是相對路徑,這取決于是否使用 DataDirectory 替換字元串。如果使用 DataDirectory,則對應的資料庫檔案必須存在于替換字元串指向的目錄的子目錄中。
必須按照如下方式使用關鍵字“database”(或其别名之一)指定資料庫名稱: "AttachDbFileName=|DataDirectory|\data\YourDB.mdf;integrated security=true;database=YourDatabase" 如果資料檔案所在的目錄中存在日志檔案,并且在附加主資料檔案時使用了“database”關鍵字,則會生成錯誤。這種情況下,請移除日志檔案。附加了資料庫後,系統将根據實體路徑自動生成一個新的日志檔案。 | ||
Connect Timeout / Connection Timeout | 在終止嘗試并産生錯誤之前,等待與伺服器的連接配接的時間長度(以秒為機關)。 | ||
Context Connection | 如果應對 SQL Server 進行程序内連接配接,則為 true。 | ||
Current Language | SQL Server 語言記錄名稱。 | ||
Data Source/ Server / Address/Addr / Network Address | 要連接配接的 SQL Server 執行個體的名稱或網絡位址。可以在伺服器名稱之後指定端口号: server=tcp:servername, portnumber 指定本地執行個體時,始終使用 (local)。若要強制使用某個協定,請添加下列字首之一: np:(local), tcp:(local), lpc:(local)
| ||
Encrypt | 當該值為 true 時,如果伺服器端安裝了證書,則 SQL Server 将對所有在用戶端和伺服器之間傳送的資料使用 SSL 加密。可識别的值為true、false、yes 和no。 | ||
Enlist | true 表明 SQL Server 連接配接池程式在建立線程的目前事務上下文中自動登記連接配接。 | ||
Failover Partner | 在其中配置資料庫鏡像的故障轉移合作夥伴伺服器的名稱。 .NET Framework 1.0 或 1.1 版不支援 Failover Partner 關鍵字。 | ||
Initial Catalog / Database | 資料庫的名稱。 | ||
Integrated Security/ Trusted_Connection | 當為 false 時,将在連接配接中指定使用者 ID 和密碼。當為 true 時,将使用目前的 Windows 帳戶憑據進行身份驗證。 可識别的值為 true、false、yes、no 以及與true 等效的sspi(強烈推薦)。 | ||
MultipleActiveResultSets | 如果為 true,則應用程式可以維護多活動結果集 (MARS)。如果為 false,則應用程式必須在執行該連接配接上的任何其他批處理之前處理或取消一個批進行中的多個結果集。 可識别的值為 true 和 false。 .NET Framework 1.0 或 1.1 版不支援該關鍵字。 | ||
Network Library /Net | 用于建立與 SQL Server 執行個體的連接配接的網絡庫。支援的值包括 dbnmpntw(命名管道)、dbmsrpcn(多協定)、dbmsadsn (Apple Talk)、dbmsgnet (VIA)、dbmslpcn(共享記憶體)及 dbmsspxn (IPX/SPX) 和 dbmssocn (TCP/IP)。 相應的網絡 DLL 必須安裝在要連接配接的系統上。如果不指定網絡而使用一個本地伺服器(比如“.”或“(local)”),則使用共享記憶體。 | ||
Packet Size | 用來與 SQL Server 的執行個體進行通信的網絡資料包的大小,以位元組為機關。 | ||
Password /Pwd | SQL Server 帳戶登入的密碼。建議不要使用。為保持高安全級别,我們強烈建議您使用 Integrated Security 或Trusted_Connection 關鍵字。 | ||
Persist Security Info | 當該值設定為 false 或 no(強烈推薦)時,如果連接配接是打開的或者一直處于打開狀态,那麼安全敏感資訊(如密碼)将不會作為連接配接的一部分傳回。重置連接配接字元串将重置包括密碼在内的所有連接配接字元串值。可識别的值為true、false、yes 和no。 | ||
Replication | 如果使用連接配接來支援複制,則為 true。 | ||
Transaction Binding | 控制與登記的 System.Transactions 事務關聯的連接配接。 可能的值包括: Transaction Binding=Implicit Unbind; Transaction Binding=Explicit Unbind; Implicit Unbind 可使連接配接在事務結束時從事務中分離。分離後,連接配接上的其他請求将以自動送出模式執行。在事務處于活動狀态的情況下執行請求時,不會檢查System.Transactions.Transaction.Current 屬性。事務結束後,其他請求将以自動送出模式執行。 Explicit Unbind 可使連接配接保持連接配接到事務,直到連接配接關閉或調用顯式 SqlConnection.TransactionEnlist(null)。如果Transaction.Current 不是登記的事務或登記的事務未處于活動狀态,則引發InvalidOperationException。 | ||
TrustServerCertificate | 如果設定為 true,則使用 SSL 對通道進行加密,但不通過證書鍊對可信度進行驗證。如果将 TrustServerCertificate 設定為true 并将 Encrypt 設定為false,則不對通道進行加密。可識别的值為true、false、yes 和no。有關更多資訊,請參見 SQL Server 2005 Books Online(《SQL Server 2005 聯機叢書》)中的“Encryption Hierarchy”(加密層次結構)和“Using Encryption Without Validation”(使用不驗證的加密)。 | ||
Type System Version | 訓示應用程式期望的類型系統的字元串值。可能的值包括: Type System Version=SQL Server 2000; Type System Version=SQL Server 2005; Type System Version=SQL Server 2008; Type System Version=Latest; 如果設定為 SQL Server 2000,将使用 SQL Server 2000 類型系統。與 SQL Server 2005 執行個體連接配接時,執行下列轉換: XML 到 NTEXT UDT 到 VARBINARY VARCHAR(MAX)、NVARCHAR(MAX) 和 VARBINARY(MAX) 分别到 TEXT、NEXT 和 IMAGE。 如果設定為 SQL Server 2005,将使用 SQL Server 2005 類型系統。對 ADO.NET 的目前版本不進行任何轉換。 如果設定為 Latest,将使用此用戶端-伺服器對無法處理的最新版本。這個最新版本将随着用戶端和伺服器元件的更新自動更新。 | ||
User ID | SQL Server 登入帳戶。建議不要使用。為保持高安全級别,我們強烈建議您使用 Integrated Security 或Trusted_Connection 關鍵字。 | ||
User Instance | 一個值,用于訓示是否将連接配接從預設的 SQL Server 速成版執行個體重定向到調用方帳戶下運作的運作時啟動的執行個體。 | ||
Workstation ID | 連接配接到 SQL Server 的工作站的名稱。 |
ConnectionString 内連接配接池值的有效名稱。
名稱 | 說明 |
Connection Lifetime | 當連接配接被傳回到池時,将其建立時間與目前時間作比較,如果時間長度(以秒為機關)超出了由 Connection Lifetime 指定的值,該連接配接就會被銷毀。這在聚集配置中很有用(用于強制執行運作中的伺服器和剛置于聯機狀态的伺服器之間的負載平衡)。 零 (0) 值将使池連接配接具有最大的連接配接逾時。 |
Connection Reset | 确定從池中提取資料庫連接配接時是否重置資料庫連接配接。對于 SQL Server 7.0 版,設定為 false 可避免擷取連接配接時再有一次額外的伺服器往返行程,但須注意此時并未重置連接配接狀态(如資料庫上下文)。 隻要不将 Connection Reset 設定為 false,連接配接池程式就不會受到ChangeDatabase 方法的影響。連接配接在退出相應的連接配接池以後将被重置,并且伺服器将移回登入時資料庫。不會建立新的連接配接,也不會重新進行身份驗證。如果将Connection Reset 設定為false,則池中可能會産生不同資料庫的連接配接。 |
Enlist | 當該值為 true 時,池程式在建立線程的目前事務上下文中自動登記連接配接。可識别的值為 true、false、yes 和 no。 |
Load Balance Timeout | 連接配接被銷毀前在連接配接池中生存的最短時間(以秒為機關)。 |
Max Pool Size | 池中允許的最大連接配接數。 |
Min Pool Size | 池中允許的最小連接配接數。 |
Pooling | 當該值為 true 時,系統将從适當的池中提取 SQLConnection 對象,或在需要時建立該對象并将其添加到适當的池中。可識别的值為true、false、yes 和no。 |