對於SQLServerExpress資料庫連接配置,以前看到過幾次,都是匆匆掃一眼,今天上午在一開源軟體中又看到了它,感覺有必要對它有一個清楚的認識,樣本如下:
<add name="LocalSqlServer" connectionString="Data Source=.\SQLExpress;Integrated Security=True;AttachDBFilename=|DataDirectory|TimeTracker.mdf;User Instance=true" />
SqlConnectionStringBuilder執行個體化時,要用到connectionString,如:SqlConnectionStringBuild builder = new SqlConnectionStringBuild(connectionString)。
一、Data Source
SqlConnectionStringBuilder的DataSource屬性,對應connectionString中的Data Source,“Data Source”可以由下列字串代替:“server”,“address”,“addr”和“network address”。
Data Source=.\SQLExpress也可以寫成這樣Data Source=(local)\SQLExpress。
二、Integrated Security
SqlConnectionStringBuilder的IntegratedSecurity屬性,對應connectionString中的Integrated Security,“Integrated Security”可以寫成“trusted_connection”,為true時,使用當前的 Windows 帳戶憑據進行身分識別驗證,為false時,需要在串連中指定使用者識別碼 和密碼。
三、AttachDBFilename
SqlConnectionStringBuilder的AttachDBFilename屬性,對應connectionString中的AttachDBFilename,“AttachDBFilename”可以寫成“extended properties”,“initial file name”。AttachDbFileName屬性指定串連開啟的時候動態附加到伺服器上的資料庫檔案的位置。這個屬性可以接受資料庫的完整路徑和相對路徑(例如使用|DataDirectory|文法),在運行時這個路徑會被應用程式的App_Data目錄所代替。
有一篇文章,專門解釋“DataDirectory”,DataDirectory是什麼?
四、User Instance
SqlConnectionStringBuilder的UserInstance屬性,對應connectionString中的User Instance ,該值指示是否將串連從預設的 SQL Server Express 執行個體重新導向到在調用方帳戶之下運行並且在運行時啟動的執行個體。UserInstance=true,在這種情況下,SQLServerExpress為了把資料庫附加到新的執行個體,建立一個新的進程,在開啟串連的使用者身份下運行。在ASP.NET應用程式中,這個使用者是本地的ASPNET帳號或預設的NetworkService,這依賴於作業系統。為了安全地附加非系統管理員帳號(例如ASP.NET帳號)提供的資料庫檔案,建立一個獨立的SQLServer使用者執行個體是必要的。