在ASP程式中以SQLOLEDB連線到SQL Server2000
在建立連線時發生
Microsoft OLE DB Provider for SQL Server (0x80004005)
Login failed for user 'kingkong'. Reason: Not associated with a
trusted SQL Server connection
的錯誤
其中連線字串如下:
Provider=SQLOLEDB; Data Source=DDSQL02; Initial Catalog=testdb1; User ID="test1";Password="test1"
未設定
integrated Security=SSPI及Trusted_Connection=yes
網路上討論均是以未設定好SQL Server登入模式為解決方法,但經檢查後SQL Server2000 設定均為混合模式
現在發現將上面的連線字串DataSource改為IP就可解決
經使用者敘述是先灌好SQL Server 2000後,再變更電腦名稱及加入網域,是否因此造成透過SQLOLEDB連線時預先以windows帳號登入?
當用戶嘗試在查詢分析器裏面使用sa來連接SQL Server,或者在企業管理器裏面使用sa來新建一個SQL Server註冊時,經常會遇到如圖 2 所示的錯誤資訊。該錯誤產生的原因是由於SQL Server使用了"僅 Windows"的身份驗證方式,因此用戶無法使用SQL Server的登錄帳戶(如 sa )進行連接。解決方法如下所示:
1、 在伺服器端使用企業管理器,並且選擇"使用 Windows 身份驗證"連接上 SQL Server;
2、 展開"SQL Server組",滑鼠右鍵點擊SQL Server伺服器的名稱,選擇"屬性",再選擇"安全性"選項卡;
3、 在"身份驗證"下,選擇"SQL Server和 Windows "。
4、 重新啟動SQL Server服務。
在以上解決方法中,如果在第 1 步中使用"使用 Windows 身份驗證"連接 SQL Server 失敗,那麼我們將遇到一個兩難的境地:首先,伺服器只允許了 Windows 的身份驗證;其次,即使使用了 Windows 身份驗證仍然無法連接上伺服器。這種情形被形象地稱之為"自己把自己鎖在了門外",因為無論用何種方式,用戶均無法使用進行連接。實際上,我們可以通過修改一個註冊表鍵值來將身份驗證方式改為 SQL Server 和 Windows 混合驗證,步驟如下所示:
1、點擊"開始"-"運行",輸入regedit,回車進入註冊表編輯器;
2、依次展開註冊表項,瀏覽到以下註冊表鍵:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]
3、在螢幕右方找到名稱"LoginMode",雙擊編輯雙字節值;
4、將原值從1改為2,點擊"確定";
5、關閉註冊表編輯器;
6、重新啟動SQL Server服務。
此時,用戶可以成功地使用sa在企業管理器中新建SQL Server註冊,但是仍然無法使用Windows身份驗證模式來連接SQL Server。這是因為在 SQL Server 中有兩個缺省的登錄帳戶:BUILTIN\Administrators 以及 <機器名>\Administrator 被刪除。要恢復這兩個帳戶,可以使用以下的方法:
1、打開企業管理器,展開伺服器組,然後展開伺服器;
2、展開"安全性",右擊"登錄",然後單擊"新建登錄";
3、在"名稱"框中,輸入 BUILTIN\Administrators;
4、在"伺服器角色"選項卡中,選擇"System Administrators" ;
5、點擊"確定"退出;
6、使用同樣方法添加 <機器名>\Administrator 登錄。
以下註冊表鍵
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode
的值決定了SQL Server將採取何種身份驗證模式。該值為1,表示使用Windows 身份驗證模式;該值為2,表示使用混合模式(Windows 身份驗證和 SQL Server 身份驗證)。
在建立連線時發生
Microsoft OLE DB Provider for SQL Server (0x80004005)
Login failed for user 'kingkong'. Reason: Not associated with a
trusted SQL Server connection
的錯誤
其中連線字串如下:
Provider=SQLOLEDB; Data Source=DDSQL02; Initial Catalog=testdb1; User ID="test1";Password="test1"
未設定
integrated Security=SSPI及Trusted_Connection=yes
網路上討論均是以未設定好SQL Server登入模式為解決方法,但經檢查後SQL Server2000 設定均為混合模式
現在發現將上面的連線字串DataSource改為IP就可解決
經使用者敘述是先灌好SQL Server 2000後,再變更電腦名稱及加入網域,是否因此造成透過SQLOLEDB連線時預先以windows帳號登入?
當用戶嘗試在查詢分析器裏面使用sa來連接SQL Server,或者在企業管理器裏面使用sa來新建一個SQL Server註冊時,經常會遇到如圖 2 所示的錯誤資訊。該錯誤產生的原因是由於SQL Server使用了"僅 Windows"的身份驗證方式,因此用戶無法使用SQL Server的登錄帳戶(如 sa )進行連接。解決方法如下所示:
1、 在伺服器端使用企業管理器,並且選擇"使用 Windows 身份驗證"連接上 SQL Server;
2、 展開"SQL Server組",滑鼠右鍵點擊SQL Server伺服器的名稱,選擇"屬性",再選擇"安全性"選項卡;
3、 在"身份驗證"下,選擇"SQL Server和 Windows "。
4、 重新啟動SQL Server服務。
在以上解決方法中,如果在第 1 步中使用"使用 Windows 身份驗證"連接 SQL Server 失敗,那麼我們將遇到一個兩難的境地:首先,伺服器只允許了 Windows 的身份驗證;其次,即使使用了 Windows 身份驗證仍然無法連接上伺服器。這種情形被形象地稱之為"自己把自己鎖在了門外",因為無論用何種方式,用戶均無法使用進行連接。實際上,我們可以通過修改一個註冊表鍵值來將身份驗證方式改為 SQL Server 和 Windows 混合驗證,步驟如下所示:
1、點擊"開始"-"運行",輸入regedit,回車進入註冊表編輯器;
2、依次展開註冊表項,瀏覽到以下註冊表鍵:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]
3、在螢幕右方找到名稱"LoginMode",雙擊編輯雙字節值;
4、將原值從1改為2,點擊"確定";
5、關閉註冊表編輯器;
6、重新啟動SQL Server服務。
此時,用戶可以成功地使用sa在企業管理器中新建SQL Server註冊,但是仍然無法使用Windows身份驗證模式來連接SQL Server。這是因為在 SQL Server 中有兩個缺省的登錄帳戶:BUILTIN\Administrators 以及 <機器名>\Administrator 被刪除。要恢復這兩個帳戶,可以使用以下的方法:
1、打開企業管理器,展開伺服器組,然後展開伺服器;
2、展開"安全性",右擊"登錄",然後單擊"新建登錄";
3、在"名稱"框中,輸入 BUILTIN\Administrators;
4、在"伺服器角色"選項卡中,選擇"System Administrators" ;
5、點擊"確定"退出;
6、使用同樣方法添加 <機器名>\Administrator 登錄。
以下註冊表鍵
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode
的值決定了SQL Server將採取何種身份驗證模式。該值為1,表示使用Windows 身份驗證模式;該值為2,表示使用混合模式(Windows 身份驗證和 SQL Server 身份驗證)。
請先 登入 以發表留言。