sql連接字符串

SQL Server .NET Data Provider 連接字符串包含一個由一些屬性名/值對組成的集合。每一個屬性/值對都由分號隔開。          PropertyName1=Value1;PropertyName2=Value2;PropertyName3=Value3;..... 同樣,連接字符串必須包含SQL Server實例名稱:          Data Source=ServerName;          使用本地的SQL Server(localhost),如果想要使用遠程服務器運行,應該在示例對象中把正確的服務器賦給Data Source 屬性。此外,還必須指定所支持的兩種身份驗證方法(即Windows身份驗證和SQL Server身份驗證)中的其中一種。Windows身份驗證使用Windows登錄用戶身份連接數據庫,而SQL身份驗證要求顯式地指定SQL Server用戶ID和密碼。要想使用Windows身份驗證,必須在連接字符串中包括 Integrated Security 屬性:          Data Source=ServerName;Integrated Security=True;

         默認情況下,Integrated Security 屬性爲 False ,這意味着將禁用Windows身份驗證。如果沒有顯式地把這個屬性的值設置爲True,連接將使用SQL Server身份驗證,因此,必須提供SQL Server用戶ID和密碼。Integrated Security屬性還能識別的其他值只有SSPI(Security Support Provider Interface,安全性支持提供者接口).在所有的Windows NT操作系統上,其中包括Windows NT 4.0、2000、XP,都支持值SSPI。它是使用Windows身份驗證時可以使用的惟一接口,相當於把Integrated Security 屬性值設置爲True。

         在Windows身份驗證模式中,SQL Server使用Windows的安全子系統對用戶連接進行有效性驗證。即使顯示地指定用戶ID和密碼,SQL Server也不檢查連接字符串中的用戶ID和密碼。因爲只有Windows NT、2000、XP支持SSPI,因此如果正使用的是這些操作系統,則只能使用Windows集成的安全策略去連接SQL Server。不論使用哪一個操作系統,當使用SQL Server身份驗證時,必須在連接字符串中指定用戶ID和密碼: Data Source=ServerName;User ID=donaldx;Password=unbreakable

         默認情況下,SQL Server .NET Data Provider連接指定用戶的默認數據庫,當在數據庫中創建用戶時,可以設置用戶的默認數據庫。此外,也可以在任意時間更改用戶的默認數據庫。例如,系統管理員的默認數據庫是master。如果想要連接不同的數據庫,應該指定數據庫的名稱: Data Source=ServerName;Integrated Security=SSPI;Initial Catalog=Northwind

         每一種身份驗證都有它的優點和缺點。Windows身份驗證使用單一的用戶信息庫源,因此,不需要爲數據庫訪問去分別配置用戶。連接字符串不包含用戶ID和密碼,因此消除了把用戶ID和密碼暴露給未授權的用戶的危險。可以在Active Directory中管理用戶和他們的角色,而不必在SQL Server中顯式地配置他們的屬性。 Windows身份驗證的缺點是,它要求客戶通過Windows的安全子系統支持的安全通道去連接SQL Server。如果應用種序需要通過不安全的網絡(例如Internet)連接SQL Server,Windows身份驗證將不工作。此外,這種身份驗證方法也部分地把管理數據庫訪問控制的責任從DBA身上轉移到了系統管理員身上,這在確定的環境中也許是一個問題。          一般而言,在設計通用的應用程序時,爲了使用Windows身份驗證,將會對一些方面進行加強。大多數公司的數據庫都駐留在比較健壯的Windows服務器操作系統上,那些操作系統都支持Windows身份驗證。數據訪問層和數據表示層的分離也促進了把數據訪問代碼封裝在中間層組件思想的應用,中間層組件通常運行在具有數據庫服務器的內部網絡中。當這樣設計時,就不需要通過不安全通道建立數據庫連接。除此之外,Web服務也使直接連接不同域中數據庫的需要大減少。 來自:http://www.cnblogs.com/lanse777/archive/2007/03/28/691757.html  

數據庫的連接性已經發展成爲應用程序開發的一個標準方面。數據庫連接字符串現在已經成爲每個項目的標準必備條件。我發現自己爲了找到所需要的句法,經常要從另外一個應用程序中複製連接字符串或者進行一次搜索。這個在與SQL Server交互操作時更是如此,因爲它有太多的連接字符串選項。現在就讓我們來研究一下連接字符串的衆多方面。

連接字符串

在對象實例化或者建立期間,數據庫連接字符串通過屬性或方法被傳遞到必要的對象。連接字符串的格式是一個以分號爲界,劃分鍵/值參數對的列表。列表A中包括了一個C#中的例子,說明了怎樣用創建SqlConnection對象的方法連接到SQL Server(實際的連接字符串是通過對象的ConnectionString屬性分配的)。列表B中包括的是VB.NET的版本。

列表A

string cString = "Data Source=server;Initial Catalog=db;User ID=test;Password=test;"; SqlConnectionconn = new SqlConnection(); conn.ConnectionString = cString; conn.Open(); 

列表B

Dim cString As String cString = "Data Source=server;Initial Catalog=db;User ID=test;Password=test;"

Dim conn As SqlConnection = New SqlConnection() conn.ConnectionString = cString conn.Open()

連接字符串會指定數據庫服務器和數據庫,以及訪問數據庫必需的用戶名和密碼。但是這種格式並不是對所有數據庫交互都適用,它的確有許多可用的選項,其中很多選項都有同義詞。

和Data Source(數據源)、Initial Catalog(初始編目)、User ID(用戶ID)、和Password(密碼)等元素一起,下面這些選項都是可用的:

 

Application Name(應用程序名稱):應用程序的名稱。如果沒有被指定的話,它的值爲.NET SqlClient Data Provider(數據提供程序). AttachDBFilenameextended properties(擴展屬性)/Initial File Name(初始文件名):可連接數據庫的主要文件的名稱,包括完整路徑名稱。數據庫名稱必須用關鍵字數據庫指定。 Connect Timeout(連接超時)/Connection Timeout(連接超時):一個到服務器的連接在終止之前等待的時間長度(以秒計),缺省值爲15。 Connection Lifetime(連接生存時間):當一個連接被返回到連接池時,它的創建時間會與當前時間進行對比。如果這個時間跨度超過了連接的有效期的話,連接就被取消。其缺省值爲0。 Connection Reset(連接重置):表示一個連接在從連接池中被移除時是否被重置。一個僞的有效在獲得一個連接的時候就無需再進行一個額外的服務器來回運作,其缺省值爲真。 Current Language(當前語言):SQL Server語言記錄的名稱。 Data Source(數據源)/Server(服務器)/Address(地址)/Addr(地址)/Network Address(網絡地址):SQL Server實例的名稱或網絡地址。 Encrypt(加密):當值爲真時,如果服務器安裝了授權證書,SQL Server就會對所有在客戶和服務器之間傳輸的數據使用SSL加密。被接受的值有true(真)、false(僞)、yes(是)和no(否)。 Enlist(登記):表示連接池程序是否會自動登記創建線程的當前事務語境中的連接,其缺省值爲真。 Database(數據庫)/Initial Catalog(初始編目):數據庫的名稱。 Integrated Security(集成安全)/Trusted Connection(受信連接):表示Windows認證是否被用來連接數據庫。它可以被設置成真、僞或者是和真對等的sspi,其缺省值爲僞。 Max Pool Size(連接池的最大容量):連接池允許的連接數的最大值,其缺省值爲100。 Min Pool Size(連接池的最小容量):連接池允許的連接數的最小值,其缺省值爲0。 Network Library(網絡庫)/Net(網絡):用來建立到一個SQL Server實例的連接的網絡庫。支持的值包括: dbnmpntw (Named Pipes)、dbmsrpcn (Multiprotocol/RPC)、dbmsvinn(Banyan Vines)、dbmsspxn (IPX/SPX)和dbmssocn (TCP/IP)。協議的動態鏈接庫必須被安裝到適當的連接,其缺省值爲TCP/IP。 Packet Size(數據包大小):用來和數據庫通信的網絡數據包的大小。其缺省值爲8192。 Password(密碼)/Pwd與帳戶名相對應的密碼。 Persist Security Info(保持安全信息):用來確定一旦連接建立了以後安全信息是否可用。如果值爲真的話,說明像用戶名和密碼這樣對安全性比較敏感的數據可用,而如果值爲僞則不可用。重置連接字符串將重新配置包括密碼在內的所有連接字符串的值。其缺省值爲僞。 Pooling(池):確定是否使用連接池。如果值爲真的話,連接就要從適當的連接池中獲得,或者,如果需要的話,連接將被創建,然後被加入合適的連接池中。其缺省值爲真。 User ID(用戶ID):用來登陸數據庫的帳戶名。 Workstation ID(工作站ID):連接到SQL Server的工作站的名稱。其缺省值爲本地計算機的名稱。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章