在登录触发器错误情况下连接SQL Server

2016-02-19 16:04 7 1 收藏

下面是个简单易学的在登录触发器错误情况下连接SQL Server教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - 编程语言 】

  如果你创建了一个登录触发器,并且在这个触发器中有一些不好的代码,那么当你尝试着登录时,你将会得到一个类似于图一显示的错误:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

图一

  如果不能很好地执行登录触发器,那么将会导致登录失败。

  例如,如果创建了这个触发器,那么就可以设计下面的代码来达到失败的目的。

   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:来连接,如图二。

图二

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  产生这种现象的原因是SQL Server通过专用管理员连接把对连接的检查和资源减到最少。当一个或多个进程消耗一个SQL Server而造成登录不能正常进行时,这种方法就给数据库管理员一个“后门”。当通过DAC连接时,SQL Server不做的一件事是执行任何登录触发器。因此,你可以使用DAC,你不会被这个不好的触发器所阻碍。然后如果需要,你可以使这个触发器不可用或者删除这个触发器。

  例如,一旦通过DAC连接,我就可以执行下面的命令来完全摆脱这个触发器:

  DROP TRIGGER BadLogonTrigger ON ALL SERVER;

  GO

来源:http://www.tulaoshi.com/n/20160219/1611009.html

延伸阅读
标签: 电脑入门
在使用电脑遇到硬件设备连接错误等问题时,在系统中卸载设备再重新安装,不失为一个解决问题的好办法。就有Win10用户的扬声器不能用,那么Win10该如何卸载扬声器呢? 操作方法 1.打开设备管理器。 2.展开音频输入和输出。 3.右击扬声器,选择卸载。 4.点击确定,进行卸载。 一般来说,Win10安装后会自行安装所有设备的驱动,可以直接正...
标签: SQLServer
触发器是数据库应用中的重用工具,它的应用很广泛。这几天写一个化学数据统计方面的软件,需要根据采样,自动计算方差,在这里,我使用了触发器。可以定义一个无论何时用INSERT语句向表中插入数据时都会执行的触发器。当触发INSERT触发器时,新的数据行就会被插入到触发器表和inserted表中。inserted表是一个逻辑表,它包含了已经插入的数据行...
你可能了解以前的USERENV函数,它返回会话值,如用户会话ID、语言、以及用户是否拥有数据库管理员权限。虽然由于遗留原因,USERENV函数仍在使用,但在Oracle 8i中,它已被一个新的函数所替代——SYS_CONTEXT。 SYS_CONTEXT不仅能够返回USERENV数据——它还能返回应用程序定义的数据值。应用程序上下文包括一组可以被SYS_CONTEXT返回的名称...
标签: MySQL mysql数据库
Conventions and Styles约定和编程风格 每次我想要演示实际代码时,我会对mysql客户端的屏幕就出现的代码进行调整,将字体改成Courier,使他们看起来与普通文本不一样(让大家区别程序代码和正文)。在这里举个例子: mysql DROP FUNCTION f; Query OK, 0 rows affected (0.00 sec)...

经验教程

995

收藏

22
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部