登录触发器阻止任何连接

seb*_*eid 7 trigger sql-server

我正在测试登录触发器以限制与某些 IP 的连接。看起来触发器不正确。现在我无法登录到服务器,即使是SA.

有没有办法来解决这个问题?

Jul*_*eur 15

您可以使用专用管理员连接 ( DAC )连接到实例。默认只接受本地连接。

可以使用 Sqlcmd:

sqlcmd -S localhost -U sa -P password -d master -A
Run Code Online (Sandbox Code Playgroud)

DAC 通过使用特殊管理员开关 (-A) 的 sqlcmd 命令提示实用程序可用和支持

您还可以将前缀连接admin:到格式中的实例名称sqlcmd -Sadmin:<_instance_name_>

也可以使用 SQL Server Management Studio:

您还可以通过连接到admin:<_instance_name_>.

但是,尝试Object Explorer通过Connect to Server在 SSMS 中使用来建立连接将失败并显示以下消息:

SSMS 不支持专用管理员连接,因为它按照设计建立了多个连接。

从断开连接的查询编辑器或与普通用户连接,使用以下任一方法重新连接:

  • 查询菜单/连接/更改连接
  • 弹出菜单/连接/更改连接

连接后,可以执行DISABLE TRIGGER

DISABLE TRIGGER logonTrigger ON ALL SERVER;
Run Code Online (Sandbox Code Playgroud)