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

在登录触发器错误的情况下连接SQLServer的方法
错误如图所示。

图1

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

例如,如果创建了此触发器,则可以设计以下代码以实现失败的目标
复制代码代码如下所示:
创建登录所有服务器TRIGGER BadLogonTrigger
作为
开始
插入baddb.dbo.sometable值(测试);
结束;


没有数据库被称为baddb,这意味着没有一个表称为有在baddb。因此,任何正常的尝试登录到服务器会失败因为触发是一个不存在的对象。为了解决这个问题,你还需要:
使用具有正确权限的现有构建连接
使用专用管理员连接(DAC)连接到SQL服务器。
如果您现有的连接中有一个可以删除触发器或触发器不可用,则使用现有的连接来纠正此问题。但在某些情况下,您的连接不具有此功能,因此您需要依赖一个专用的管理员来连接。
默认情况下,专用管理员连接只能用于本地服务器。这意味着你需要登录到本地计算机或使用其他方式,如远程桌面连接。一旦你登录,您可以使用sqlcmd或SSMS。
如果你使用sqlcmd,你想和一个开关通过专用管理员连接。如果连接的问题,一定要通过指定管理员连接:在服务器名称的前面,如图2。
图2
这是因为SQL Server减少检查和资源连接的连接通过专用管理员连接。这种方法给数据库管理员后门时,一个或多个进程消耗了SQL Server,导致登录不正常。一个SQL Server不做时,SQL Server连接执行任何登录触发器。所以,你可以使用DAC,你不会被这个坏引发堵塞。然后,如果你需要,你可以让这个触发不使用或删除触发器。
例如,一旦连接到DAC,我就可以执行下面的命令来完全消除这个触发器:
复制代码代码如下所示:
把TRIGGER BadLogonTrigger所有的服务器;

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部