解決SQL Server 串連時的一些基本問題後的若干初淺心得

來源:互聯網
上載者:User
學生做了一個題庫系統,用C#寫的ASP應用程式,資料庫用SQL
Server2000,交給我看看。放到伺服器上後,出現問題。反覆調整後發現瞭解決的方法,其實很簡單。回過頭去看了看,發現是自己對SQL
Server的串連語句和使用者權限的認識不足所造成的。下面將我的一些心得以及網上查到的有關資料彙集一下,以為後來者借鑒,當然很膚淺。

1、SQL Server的串連方式以本機伺服器(LocalHost),資料庫(Northwind)為例,可以有以下一些串連方式SqlConnection conn=new SqlConnection( "Server=LocalHost;Integrated Security=SSPI;Database=Northwind");SqlConnection conn = new SqlConnection("Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=Northwind;");SqlConnection conn = new
SqlConnection(" Data Source=LocalHost;Initial
Catalog=Northwind;Integrated Security=SSPI;Persist Security
Info=False;Workstation Id=XURUI;Packet Size=4096; ");
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;Data Source=LocalHost;Connect Timeout=900");

心得:a.Server和Database,Data Source和Initial Catalog配對使用的,可以互相替換(見笑)
b.Integrated Security預設值是False,此時需要提供Uid和Pwd,即將以Sql Server
使用者身份登陸資料庫;如果設定為True,Yes 或
SSPI,這不能出現Uid和Pwd,將以Windows使用者省份登陸資料庫。強烈推薦用後一種形式,安全性更高。
c.Integrated Security和Persist Security Info同時出現,後者設定為False,可保證資訊安全。

更多字串串連說明請看MSDN:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataSqlClientSqlConnectionClassConnectionStringTopic.asp

連接字串的書寫應該熟練後應該沒有什麼問題,我是再看別人的程式,說實話有些東東還真不清楚。但串連不上的問題出現後,得解決呀。所以必須要弄懂這些關鍵字的意義,修改後再測試。

2、SQL Server的使用者佈建
問題一、採用連接字串
SqlConnection conn = new SqlConnection(" Uid=sa;Pwd=***;Initial Catalog=Northwind;Data Source=LocalHost;Connect Timeout=900");
錯誤:
使用者"sa"登陸失敗,沒有可信任的Sql Server串連
查資料後找到解決方案:
原因:Sql Server的驗證方式需要設定為Sql Server驗證和Windows整合驗證的混合方式,如果僅設定為後一種方式,就會出像上述問題
解決:運行Sql Server的企業管理器,點擊伺服器,在右鍵菜單中選擇屬性,選安全性,更改驗證方式即可
問題二、採用連接字串
SqlConnection conn = new SqlConnection("Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=Northwind;");
錯誤:
使用者"computername\IWAM_servername"登陸失敗
原因:SQL Server的登陸使用者中不包括IWAM_servername
解決方案:運行Sql Server的企業管理器,點擊伺服器,選安全性,選登陸,建立登陸中加入IWAM_servername,並配備相應的許可權,如只能訪問Northwind資料庫,資料庫的角色設定為public和db_owner。

3、關於串連的安全性

最好使用SSPI的整合安全方式串連資料庫,而sa使用者的方式串連會存在安全隱患,我認為主要是因為在安裝SQL
Server時,經常會為了訪問的方便設定sa的密碼為空白,駭客一旦讓sa成為管理員,就可以獲得對系統的所有存取權限。所以為了資料庫的安全,可以設定
SQL
server的訪問使用者只能經過windows整合驗證,設定sa的安全密碼,加強資料庫的安全性。當然設定為windows整合驗證後,資料庫的效能和
訪問的靈活性勢必會受到影響,管理員可以針對每一個資料庫設定不同的驗證方式,而不必對SQL server設定成統一的方式。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.