最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在登錄觸發(fā)器錯誤情況下連接SQL Server的方法

 更新時間:2011年07月11日 23:42:51   作者:  
如果你創(chuàng)建了一個登錄觸發(fā)器,并且在這個觸發(fā)器中有一些不好的代碼,那么當(dāng)你嘗試著登錄時,你將會得到一個類似于圖一顯示的錯誤

錯誤如圖所示:


圖一

如果不能很好地執(zhí)行登錄觸發(fā)器,那么將會導(dǎo)致登錄失敗。

例如,如果創(chuàng)建了這個觸發(fā)器,那么就可以設(shè)計(jì)下面的代碼來達(dá)到失敗的目的。

復(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。因此,任何登錄到該服務(wù)器的正常嘗試都會失敗,因?yàn)檫@個觸發(fā)器涉及到一個不存在的對象。為了糾正這一問題,你也需要:
使用一個現(xiàn)有的建立連接,該連接擁有合適的權(quán)限。
使用專用管理員連接(DAC)連接SQL Server。
如果你現(xiàn)有的一個連接可以刪除觸發(fā)器或者使觸發(fā)器不可用,那么請使用現(xiàn)有的連接來糾正這個問題。但是可能在一些情況下,你的連接沒有這種功能,那么你需要依賴專用管理員連接。
默認(rèn)情況下,這個專用管理員連接只能在本地服務(wù)器中使用。這就意味著,你需要通過登錄到本地計(jì)算機(jī)或者使用另一種方式如遠(yuǎn)程桌面來連接。一旦你登錄了,你就可以使用SQLCMD或者SSMS。
如果你使用SQLCMD,你要通過該專用管理員連接指定一個-A開關(guān)來連接。如果你通過SSMS連接,那么要確定通過在服務(wù)器名前面指定ADMIN:來連接,如圖二。

圖二
產(chǎn)生這種現(xiàn)象的原因是SQL Server通過專用管理員連接把對連接的檢查和資源減到最少。當(dāng)一個或多個進(jìn)程消耗一個SQL Server而造成登錄不能正常進(jìn)行時,這種方法就給數(shù)據(jù)庫管理員一個“后門”。當(dāng)通過DAC連接時,SQL Server不做的一件事是執(zhí)行任何登錄觸發(fā)器。因此,你可以使用DAC,你不會被這個不好的觸發(fā)器所阻礙。然后如果需要,你可以使這個觸發(fā)器不可用或者刪除這個觸發(fā)器。
例如,一旦通過DAC連接,我就可以執(zhí)行下面的命令來完全擺脫這個觸發(fā)器:
復(fù)制代碼 代碼如下:

DROP TRIGGER BadLogonTrigger ON ALL SERVER;
GO

相關(guān)文章

最新評論

桂东县| 上虞市| 万盛区| 寿阳县| 胶南市| 什邡市| 新营市| 万山特区| 泾川县| 论坛| 宜城市| 南通市| 遵化市| 利辛县| 抚远县| 六盘水市| 怀柔区| 招远市| 永仁县| 安吉县| 阳东县| 同德县| 永年县| 迁安市| 马公市| 荥阳市| 师宗县| 霞浦县| 盘锦市| 芮城县| 平利县| 元谋县| 台江县| 杭州市| 根河市| 教育| 策勒县| 莒南县| 枣庄市| 左贡县| 温泉县|