2015-11-11 2 views
2

Я случайно запускаю следующий триггер на SQL Server 2012. Как его отменить?Заблокировано из SQL Server из-за триггера

Триггер предназначен для блокировки определенных IP-адресов, но заблокировал его. Кажется, я не могу войти нигде.

CREATE TRIGGER block_ipaddress 
ON ALL SERVER 
FOR LOGON 
AS 
BEGIN 
    DECLARE @capturedip NVARCHAR(15); 

    SET @capturedip = (SELECT EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'NVARCHAR(15)')); 

    IF EXISTS(SELECT ipaddress FROM master.dbo.IPBLock WHERE ipaddress = @capturedip) 
    BEGIN 
     Print 'Your IP Address is blocked, Contact Administrator' 
     ROLLBACK 
    END 
    ELSE 
    BEGIN 
     DECLARE @IPRange VARCHAR(15) 

     SELECT @IPRange = SUBSTRING(@capturedip,1,LEN(@capturedip)-CHARINDEX('.',REVERSE(@capturedip)))+'.*' 

     IF EXISTS(SELECT ipaddress FROM master.dbo.IPBLock WHERE ipaddress = @IPRange) 
     BEGIN 
      Print 'Your IP Address Range is blocked, Contact Administrator' 
      ROLLBACK 
     END 
    END 
END 
GO 

Я больше не подключен к базе данных. Я получил информацию с этого сайта: http://sql-articles.com/articles/security/ip-address-blocking-or-restriction-in-sql-server/

+0

последний раз, когда я был заблокирован из-за проблем с разрешением, мне пришлось сменить экземпляр на один пользовательский режим, а затем я мог подключиться и вносить изменения .. https://msdn.microsoft.com/en-us/library/dd207004 .aspx – JamieD77

+0

У вас есть выделенный администратор. Подключение включено? Кроме того, можете ли вы использовать RDP в машине? –

+2

try 'sqlcmd -S имя_сервера -U sa -P pass_word -A -d master -q" drop trigger block_ipaddress ON ALL SERVER "' – ewahner

ответ

4

From the fine documentation

Когда триггер входа в систему предотвращения соединения, члены роли сисадмина фиксированного сервера можно подключить с помощью специализированного подключения администратора, или запустив модуль базы данных в минимальный режим конфигурации (-f). Дополнительную информацию см. в разделе Database Engine Service Startup.

Затем, после подключения, вы можете сбросить спусковой крючок.

+1

Неполаженная проблема. Зашел на сервер с помощью подключения администратора в командной строке и сбросил триггер по имени. – AMorton1989

Смежные вопросы