河南快赢481客户端下载

品略圖書館

理解SQL Server 2000的信任連接(Trusted connection)

我在用OLEDB方式連接SQL Server時, 用到連接字: "provider=SQLOLEDB.1;data source=localhost;initial catalog=WroxBooks; Trusted_Connection=yes; User ID=sa;Password=;"

調用后一直無法正常連接。

ASP.NET錯誤描述:

* Error while accessing data.

用戶 "CXY/ASPNET" 登錄失敗。

ASP錯誤描述:

Microsoft OLE DB Provider for SQL Server (0x80040E4D)

用戶 "CXY/IUSR_CXY" 登錄失敗。

已確信所連接的數據源,帳號和口令都是正確的,根據出錯描述,怎么連接會用

CXY/ASPNET或CXY/IUSR_CXY登錄?(我已明確指定User ID=sa;Password=;),經過多

次試驗,最后將連接字中的Trusted_Connection=yes;刪除,連接成功!

如果明白SQL Server登錄驗證的原理, 就可以知道Trusted Connection的含義。

在SQL Server Architecture(SQL Server架構)登錄篇中有關于Authenticating Logins(登錄驗證)的講述, 摘錄如下:

......

SQL Server 2000 uses two types of authentication: Windows Authentication

and SQL Server Authentication.

......

When using Windows Authentication, you do not have to specify a login ID

or password when you connect to SQL Server 2000. Your access to SQL

Server 2000 is controlled by your Windows NT or Windows 2000 account or

group, which is authenticated when you log on to the Windows operating

system on the client.

When you connect, the SQL Server 2000 client software requests a Windows

trusted connection to SQL Server 2000. Windows does not open a trusted

connection unless the client has logged on successfully using a valid

Windows account. The properties of a trusted connection include the

Windows NT and Windows 2000 group and user accounts of the client that

opened the connection. SQL Server 2000 gets the user account information

from the trusted connection properties and matches them against the

Windows accounts defined as valid SQL Server 2000 logins. If SQL Server

2000 finds a match, it accepts the connection. When you connect to SQL

Server 2000 using Windows 2000 Authentication, your identification is

your Windows NT or Windows 2000 group or user account.

SQL Server 2000采用兩種不同的驗證方式:Windows驗證和SQL Server 2000驗證

用Windows驗證連接時,不必指定一個用戶ID及口令,連接驗證使用Windows NT或2000的組帳號(group account)。

要知道:SQL Server 2000 在連接驗證之前,用戶先用Windows NT或2000的組帳號在客戶端成功登錄至SQL Server 2000服務器,方能建立一個信任連接(Trusted connection),SQL Server從信任連接屬性中獲取用戶的帳號信息,將其與Windows已定義的帳號信息匹配和分析,如果正確就連接成功,并將此Windows帳號作為連接至SQL Server 2000的用戶ID。

上文中的連接字中包含有:Trusted_Connection=yes;

這就意味著連接將采用信任連接方式,但由于連接前沒有用Windows組帳號(在ASP環境中是訪問IIS服務帳號IUSR_計算機名,在ASP.NET環境中帳號是ASPNET)登錄至SQL Server 2000服務器, 也就是說沒有建立一個信任連接(Trusted connection),當然,SQL Server 2000連接也不能夠成功。

將Trusted_Connection=yes;刪除或改為Trusted_Connection=no;

這將不采用信任連接方式(也即不采用Windows驗證方式),而改由SQL Server 2000驗證方式,即在連接字中指定:User ID=user name;Password=user password;

SQL Server 2000會將此用戶ID和口令進行驗證連接,而與Windows帳號無關。

關于SQL Server 2000上述兩種驗證方式的設置(連接驗證采用Windows和SQL Server驗證,還是僅采用Windows驗證),可以啟動SQL Server 2000企業管理器,然后在安全性配置中設置。

免責聲明:本文僅代表文章作者的個人觀點,與本站無關。其原創性、真實性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容文字的真實性、完整性和原創性本站不作任何保證或承諾,請讀者僅作參考,并自行核實相關內容。

http://www.lnegs.com.cn/style/images/nopic.gif
我要收藏
個贊
被踩
分享到
相關推薦
精選文章
分享
評論
首頁
河南快赢481客户端下载