• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    在登录触发器错误情况下连接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而造成登录不能正常进行时,这种方法就给数据库管理员一个“后门”。当通过DAC连接时,SQL Server不做的一件事是执行任何登录触发器。因此,你可以使用DAC,你不会被这个不好的触发器所阻碍。然后如果需要,你可以使这个触发器不可用或者删除这个触发器。
    例如,一旦通过DAC连接,我就可以执行下面的命令来完全摆脱这个触发器:
    复制代码 代码如下:

    DROP TRIGGER BadLogonTrigger ON ALL SERVER;
    GO

    您可能感兴趣的文章:
    • 用户"sa"登陆失败 SQLServer 错误18456的解决方法
    • SQL错误:相关的信息为:用户 sa 登录失败。原因: 未与信任 SQL Server 连接相关联。
    • SQL Server成功与服务器建立连接但是在登录过程中发生错误的快速解决方案
    • SQLServer无法打开用户默认数据库 登录失败错误4064的解决方法
    • SQLServer2005混合模式登录配置(用户登录错误18452,233,4064)
    • SQL Server 2008登录错误:无法连接到(local)解决方法
    • SQL Server 2012 sa用户登录错误18456的解决方法
    上一篇:SQL 2005使用专用管理员连接(DAC)的技巧及修改系统表的方法
    下一篇:SQLServer 2005 控制用户权限访问表图文教程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    在登录触发器错误情况下连接SQL Server的方法 在,登录,触发器,错误,情况下,