国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

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

2024-08-31 01:01:05
字體:
來源:轉載
供稿:網友

錯誤如圖所示:

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



圖一

如果不能很好地執行登錄觸發器,那么將會導致登錄失敗。

例如,如果創建了這個觸發器,那么就可以設計下面的代碼來達到失敗的目的。

復制代碼 代碼如下:


CREATE TRIGGER BadLogonTrigger ON ALL SERVER FOR LOGON
AS
BEGIN
INSERT INTO BadDB.dbo.SomeTable VALUES ('Test');
END;
GO


沒有一個數據庫稱為BadDB,這意味著在BadDB內也沒有一張表叫SomeTable。因此,任何登錄到該服務器的正常嘗試都會失敗,因為這個觸發器涉及到一個不存在的對象。為了糾正這一問題,你也需要:
使用一個現有的建立連接,該連接擁有合適的權限。
使用專用管理員連接(DAC)連接SQL Server。
如果你現有的一個連接可以刪除觸發器或者使觸發器不可用,那么請使用現有的連接來糾正這個問題。但是可能在一些情況下,你的連接沒有這種功能,那么你需要依賴專用管理員連接。
默認情況下,這個專用管理員連接只能在本地服務器中使用。這就意味著,你需要通過登錄到本地計算機或者使用另一種方式如遠程桌面來連接。一旦你登錄了,你就可以使用SQLCMD或者SSMS。
如果你使用SQLCMD,你要通過該專用管理員連接指定一個-A開關來連接。如果你通過SSMS連接,那么要確定通過在服務器名前面指定ADMIN:來連接,如圖二。

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


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

復制代碼 代碼如下:


DROP TRIGGER BadLogonTrigger ON ALL SERVER;
GO

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲周县| 佛坪县| 盐亭县| 理塘县| 屏东市| 巢湖市| 即墨市| 庆安县| 衡东县| 民乐县| 长岭县| 灌云县| 治县。| 邵阳市| 绍兴市| 万年县| 车险| 黄龙县| 镶黄旗| 印江| 赤水市| 济南市| 雷波县| 武汉市| 樟树市| 靖远县| 金华市| 讷河市| 西平县| 鹿泉市| 左云县| 阳曲县| 蚌埠市| 安徽省| 贵州省| 温泉县| 霍山县| 清流县| 清流县| 乾安县| 霍林郭勒市|