• 由于执行触发器导致登录失败,错误号为17892的解决方案


    登录SQL SERVER时提示“由于执行触发器,登录名xxx的登录失败”如下图

     原因: 编写了服务器级别的触发器,执行触发器时发生了错误导致. 如下图,trg_logon为一个登录触发器,如果执行错误,则不能正常登录SQL SERVER。

    解决方法:以最小配置模式启动SQL SERVER后,禁用或删除触发器,详细步骤如下:

    1.开始菜单启动配置管理器

     点击SQL SERVER 服务,右侧双击SQL SERVER(XXX) 打开属性窗口->高级->启动参数->在启动参数里加上”;-f”注意-f前要加上分号。

     

     

    -f 表示以最小配置模式运行SQ L SERVER, 从个人使用效果来看最小配置模式SQL SERVER只允许一个用户连接,似乎已经包含了”单用户模式(参数为-m)”,填写好参数后,点击确定。

    保存启动参数后,会出现以下对话框,点击确定,然后重启SQL SERVER ,刚才的设置就会生效。

     

     重启SQL SERVER 后,打开SQL SERVER Management Studio, 登录连接即可

    找到触发器,鼠标右键,禁用。

     触发器禁用完后,将前面设置的 ;-f  去掉,重新启动SQL SERVER服务,就可以正常连接了,

    如果不去掉  ;-f  再次连接就会出现如下图:

    说明:

    -f  已最小配置模式启动服务器。然后,系统管理员可以对配置选项重新配置(使用sp_configure系统存储过程)。

    -m 表示在单用户模式下启动SQLServer实例。如果SQLServer是以单用户模式启动的,则只能连接一个用户。CHECKPOINT机制(它确保完成的事务定期从磁盘高速缓存写入数据库设备中)将不启动。(一般情况下,如果您遇到需要修复的系统数据库问题时,可使用此选项)

    -n 表示您不想使用WindwsNT应用程序日志来记录SQLServer事件。如果用-n选项启动SQLServer实例,则最好也使用-e选项,否则将不会记录SQLServer事件。

    -trace# 表示应使用指定的有限跟踪标记(trace#)来启动SQLServer实例。跟踪标志来启动具有非标准行为的服务器。有关可用跟踪标记(trace#)的更多信息,请参见跟踪标记。重要当指定跟踪标志时,请使用-T来传递跟踪标志号,SQLServer接受小写字母t(-t);然而,-t还设置SQLServer支持工程师所需的其他内部跟踪标记。

    -v 显示服务器的版本号。

    -x禁用维护CPU统计。

  • 相关阅读:
    联邦学习:联邦场景下的域泛化
    Centos8 + Redis 6.2.7 安装
    Java 面试题 (二) -------- Java 集合相关
    癫痫脑电信号基础知识
    如何骚操作通过科目一斩获高分,python带你了解~
    Elastic Stack容器化部署拓展(Https、AD域集成)并收集Cisco设备的日志信息
    人工智能学习:ResNet神经网络(8)
    TCP/IP网络参考模型
    1160 队列安排
    Java自幂数计算及其算法改进
  • 原文地址:https://blog.csdn.net/mxy906975387/article/details/126866779