在登錄觸發(fā)器錯誤情況下連接SQL Server的方法
錯誤如圖所示:
圖一
如果不能很好地執(zhí)行登錄觸發(fā)器,那么將會導致登錄失敗。
例如,如果創(chuàng)建了這個觸發(fā)器,那么就可以設計下面的代碼來達到失敗的目的。
CREATE TRIGGER BadLogonTrigger ON ALL SERVER FOR LOGON
AS
BEGIN
INSERT INTO BadDB.dbo.SomeTable VALUES ('Test');
END;
GO
沒有一個數(shù)據(jù)庫稱為BadDB,這意味著在BadDB內(nèi)也沒有一張表叫SomeTable。因此,任何登錄到該服務器的正常嘗試都會失敗,因為這個觸發(fā)器涉及到一個不存在的對象。為了糾正這一問題,你也需要:
使用一個現(xiàn)有的建立連接,該連接擁有合適的權(quán)限。
使用專用管理員連接(DAC)連接SQL Server。
如果你現(xiàn)有的一個連接可以刪除觸發(fā)器或者使觸發(fā)器不可用,那么請使用現(xiàn)有的連接來糾正這個問題。但是可能在一些情況下,你的連接沒有這種功能,那么你需要依賴專用管理員連接。
默認情況下,這個專用管理員連接只能在本地服務器中使用。這就意味著,你需要通過登錄到本地計算機或者使用另一種方式如遠程桌面來連接。一旦你登錄了,你就可以使用SQLCMD或者SSMS。
如果你使用SQLCMD,你要通過該專用管理員連接指定一個-A開關(guān)來連接。如果你通過SSMS連接,那么要確定通過在服務器名前面指定ADMIN:來連接,如圖二。

圖二
產(chǎn)生這種現(xiàn)象的原因是SQL Server通過專用管理員連接把對連接的檢查和資源減到最少。當一個或多個進程消耗一個SQL Server而造成登錄不能正常進行時,這種方法就給數(shù)據(jù)庫管理員一個“后門”。當通過DAC連接時,SQL Server不做的一件事是執(zhí)行任何登錄觸發(fā)器。因此,你可以使用DAC,你不會被這個不好的觸發(fā)器所阻礙。然后如果需要,你可以使這個觸發(fā)器不可用或者刪除這個觸發(fā)器。
例如,一旦通過DAC連接,我就可以執(zhí)行下面的命令來完全擺脫這個觸發(fā)器:
DROP TRIGGER BadLogonTrigger ON ALL SERVER;
GO
- 用戶"sa"登陸失敗 SQLServer 錯誤18456的解決方法
- SQL錯誤:相關(guān)的信息為:用戶 sa 登錄失敗。原因: 未與信任 SQL Server 連接相關(guān)聯(lián)。
- SQL Server成功與服務器建立連接但是在登錄過程中發(fā)生錯誤的快速解決方案
- SQLServer無法打開用戶默認數(shù)據(jù)庫 登錄失敗錯誤4064的解決方法
- SQLServer2005混合模式登錄配置(用戶登錄錯誤18452,233,4064)
- SQL Server 2008登錄錯誤:無法連接到(local)解決方法
- SQL Server 2012 sa用戶登錄錯誤18456的解決方法
相關(guān)文章
SQL2005學習筆記 EXCEPT和INTERSECT運算符
EXCEPT和INTERSECT運算符使您可以比較兩個或多個SELECT語句的結(jié)果并返回非重復值。2009-07-07同時安裝vs2005團隊開發(fā)版和sql 2005企業(yè)版的方法(downmoon原作)
由于微軟在vs2005 vsts團隊開發(fā)版中集成了sql 2005 express,而在SQL 2005中又集成了vs2005 Express,,所以當很多用戶同時安裝vs2005團隊開發(fā)?:?sql 2005企業(yè)版(downmoon)時,就會出現(xiàn)數(shù)據(jù)庫連接失敗的case2012-10-10sql server 2005中使用with實現(xiàn)遞歸的方法
這篇文章介紹了sql server 2005中使用with實現(xiàn)遞歸的方法,有需要的朋友可以參考一下2013-09-09Sql Server安裝出錯,安裝程序配置服務器失敗的解決方法小結(jié)
機子之前有裝了sql server 2000,而且可以正常使用,最近突然無法連接到本地數(shù)據(jù)庫,打算重裝,結(jié)果重裝時出現(xiàn)了無法安裝完畢的問題,一下總結(jié)了重裝時需要注意的問題,以及常見錯誤的解決方法2012-10-10通過創(chuàng)建SQLServer 2005到 Oracle10g 的鏈接服務器實現(xiàn)異構(gòu)數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)換方案
通過創(chuàng)建SQL Server 2005到 Oracle10g 的鏈接服務器實現(xiàn)異構(gòu)數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)換方案,需要的朋友可以參考下。2011-06-06分頁存儲過程(一)使用sql2005的新函數(shù)構(gòu)造分頁存儲過程
分頁存儲過程一直是很多人經(jīng)常用到的東西,怎么樣才能設計一個既實用,又強大,還可以解決大數(shù)據(jù)量的分頁存儲過程呢?2010-05-05SQL2005CLR函數(shù)擴展-解析天氣服務的實現(xiàn)
其實我們可以用CLR獲取網(wǎng)絡服務,來顯示到數(shù)據(jù)庫自定函數(shù)的結(jié)果集中,比如163的天氣預報。需要的朋友參考下2013-06-06SQLServer 2005系統(tǒng)配置要求官方說明
SQLServer 2005系統(tǒng)配置要求官方說明,需要安裝sql2005的朋友需要了解下。2009-08-08在登錄觸發(fā)器錯誤情況下連接SQL Server的方法
如果你創(chuàng)建了一個登錄觸發(fā)器,并且在這個觸發(fā)器中有一些不好的代碼,那么當你嘗試著登錄時,你將會得到一個類似于圖一顯示的錯誤2011-07-07