1、SQL Server的連接方式 以本地服務(wù)器(LocalHost),數(shù)據(jù)庫(kù)(Northwind)為例,可以有以下一些連接方式 SqlConnection conn=new SqlConnection( "Server=LocalHost;Integrated Security=SSPI;Database=Northwind"); SqlConnection conn = new SqlConnection("Da SqlConnection conn = new SqlConnection(" Da SqlConnection myConn = new SqlConnection("Persist Security Info=False;Integrated Security=SSPI;Database=northwind;Server=LocalHost"); SqlConnection conn = new SqlConnection(" Uid=sa;Pwd=***;Initial Catalog=Northwind;Da 心得: a. Server和Database,Da b. Integrated Security默認(rèn)值是False,此時(shí)需要提供Uid和Pwd,即將以Sql Server 用戶身份登陸數(shù)據(jù)庫(kù);如果設(shè)置為T(mén)rue,Yes 或 SSPI,這不能出現(xiàn)Uid和Pwd,將以Windows用戶省份登陸數(shù)據(jù)庫(kù)。強(qiáng)烈推薦用后一種形式,安全性更高。 c. Integrated Security和Persist Security Info同時(shí)出現(xiàn),后者設(shè)置為False,可保證信息安全。 連接字符串的書(shū)寫(xiě)應(yīng)該熟練后應(yīng)該沒(méi)有什么問(wèn)題,我是再看別人的程序,說(shuō)實(shí)話有些東東還真不清楚。但連接不上的問(wèn)題出現(xiàn)后,得解決呀。所以必須要弄懂這些關(guān)鍵字的意義,修改后再測(cè)試。 2、SQL Server的用戶設(shè)置 問(wèn)題一、采用連接字符串 SqlConnection conn = new SqlConnection(" Uid=sa;Pwd=***;Initial Catalog=Northwind;Da 錯(cuò)誤: 用戶"sa"登陸失敗,沒(méi)有可信任的Sql Server連接 查資料后找到解決方法: 原因:Sql Server的驗(yàn)證方式需要設(shè)置為Sql Server驗(yàn)證和Windows集成驗(yàn)證的混合方式,如果僅設(shè)置為后一種方式,就會(huì)出像上述問(wèn)題 解決:運(yùn)行Sql Server的企業(yè)管理器,點(diǎn)擊服務(wù)器,在右鍵菜單中選擇屬性,選安全性,更改驗(yàn)證方式即可 問(wèn)題二、采用連接字符串 SqlConnection conn = new SqlConnection("Da 錯(cuò)誤: 用戶"computername\IWAM_servername"登陸失敗 原因:SQL Server的登陸用戶中不包括IWAM_servername 解決方法:運(yùn)行Sql Server的企業(yè)管理器,點(diǎn)擊服務(wù)器,選安全性,選登陸,新建登陸中加入IWAM_servername,并配備相應(yīng)的權(quán)限,如只能訪問(wèn)Northwind數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的角色設(shè)置為public和db_owner。 3、關(guān)于連接的安全性 最好使用SSPI的集成安全方式連接數(shù)據(jù)庫(kù),而sa用戶的方式連接會(huì)存在安全隱患,我認(rèn)為主要是因?yàn)樵诎惭bSQL Server時(shí),經(jīng)常會(huì)為了訪問(wèn)的方便設(shè)置sa的密碼為空,黑客一旦讓sa成為管理員,就可以獲得對(duì)系統(tǒng)的所有訪問(wèn)權(quán)限。所以為了數(shù)據(jù)庫(kù)的安全,可以設(shè)置 SQL server的訪問(wèn)用戶只能經(jīng)過(guò)windows集成驗(yàn)證,設(shè)置sa的安全密碼,加強(qiáng)數(shù)據(jù)庫(kù)的安全性。當(dāng)然設(shè)置為windows集成驗(yàn)證后,數(shù)據(jù)庫(kù)的性能和訪問(wèn)的靈活性勢(shì)必會(huì)受到影響,管理員可以針對(duì)每一個(gè)數(shù)據(jù)庫(kù)設(shè)置不同的驗(yàn)證方式,而不必對(duì)SQL server設(shè)置成統(tǒng)一的方式。 如果端口不是默認(rèn)的了,應(yīng)寫(xiě)成 Server=LocalHost,端口號(hào) |
|