用戶端可以串連 .Net程式不能串連SQL Server 2000

來源:互聯網
上載者:User

    工作機器(開發ASP.Net程式,.Net Framework 1.1)在域裡面,SQL 2000伺服器不在域中,突然出現SQL企業管理器和查詢分析器都可以串連到SQL 2000伺服器,而.Net程式則連不上,報錯“SQL Server伺服器不存在或拒絕訪問”。
    以前好像也這樣用過,並沒有出問題,看來可能跟域的控制策略有關係,這段時間公司域策略調整比較頻繁,沒有登陸域的機器和域裡面機器的互訪漸漸出問題。
    折騰了一陣沒有結果,後來猜想也許是ASP.Net使用的帳號不能通過SQL 2000伺服器驗證的問題。其實一直也不會懷疑這方面,因為Client連SQL Server伺服器時,使用的是網路連接埠(預設1433連接埠)通訊,不需要SQL Server所在伺服器作業系統的使用者驗證。
 
    測試如下:
    1. 我的域帳號是可以完全存取控制SQL 2000伺服器的機器的。在工作機的C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG裡面,把machine.config檔案中processModel節點的userName改為我的域帳號,password設為我的域帳號的密碼,重啟IIS後登陸系統,成功。工作管理員裡面顯示asp_net進程的啟動使用者為我的域帳號。
    2. 在工作機上建立一個Windows帳號ASPNETTest,加入到Administrators組中(注意帳號第一次登陸系統必須修改密碼的選項要去掉),設定密碼(假設為qazQAZ123)。將C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG的machine.config使用者名稱修改為ASPNETTest,密碼設為這個帳號的密碼(qazQAZ123)。在SQL 2000伺服器上建立一個Windows帳號ASPNETTest,密碼設成跟工作機一致(qazQAZ123),也加入到Administrators組中。重啟IIS後登陸系統,成功。工作管理員裡面顯示asp_net進程的啟動使用者為ASPNETTest。
 
    SQL 2000伺服器的Security裡面,設定的是SQL Server and Windows。如果說上面的測試跟這個有關係的話也是說不通的,程式的連接字串裡面指定SQL Server認證方式,如果SQL Server的帳號、密碼不正確,會連不上SQL Server,只能說在這種情況下,SQL Server認證和Windows認證都需要通過。
    另外,ASP.Net將工作機上自己使用的帳號、密碼認證資訊發送給SQL 2000伺服器進行Windows認證,感覺也怪怪的。是ASP.Net在這樣做,還是因為域的安全控制策略導致了一個Windows的認證過程?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.