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