Logon failed for login due to trigger execution.Changed database context to 'master'.Changed language setting to us_english. (Microsoft SQL Server, Error: 17892)
Logon failed for login 'DOMAIN1\qmohammad' due to trigger execution.Changed database context to 'master'.Changed language setting to us_english. (Microsoft SQL Server, Error: 17892)
I am getting the error when i used below Trigger after that i am not able to connect ssms .
--Create the dbo.ServerLogonHistory Table
CREATE TABLE dbo.ServerLogonHistory ( EventType VARCHAR(512), PostTime DATETIME, SPID INT,ServerName VARCHAR(512), LoginName VARCHAR(512),
LoginType VARCHAR(512),SID VARCHAR(512), ClientHost VARCHAR(512), IsPooled BIT ) GO
--Create the Logon Trigger Trigger_ServerLogon
CREATE TRIGGER Trigger_ServerLogon ON ALL SERVER WITH EXECUTE AS 'sa' FOR LOGON AS
BEGIN DECLARE @data XML SET @data = EVENTDATA() INSERT INTO dbo.ServerLogonHistory SELECT @data.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(512)') , @data.value('(/EVENT_INSTANCE/PostTime)[1]', 'datetime') , @data.value('(/EVENT_INSTANCE/SPID)[1]', 'nvarchar(4)') , @data.value('(/EVENT_INSTANCE/ServerName)[1]', 'nvarchar(512)') , @data.value('(/EVENT_INSTANCE/LoginName)[1]', 'nvarchar(512)') , @data.value('(/EVENT_INSTANCE/LoginType)[1]', 'nvarchar(512)') , @data.value('(/EVENT_INSTANCE/SID)[1]', 'nvarchar(512)'), @data.value('(/EVENT_INSTANCE/ClientHost)[1]', 'nvarchar(512)') , @data.value('(/EVENT_INSTANCE/IsPooled)[1]', 'nvarchar(1)')
END
GO
--Create the dbo.ServerLogonHistory Table CREATE TABLE dbo.ServerLogonHistory ( EventType VARCHAR(512), PostTime DATETIME, SPID INT, ServerName VARCHAR(512), LoginName VARCHAR(512),
LoginType VARCHAR(512), SID VARCHAR(512), ClientHost VARCHAR(512), IsPooled BIT ) GO --Grant insert rights to public for this table GRANT INSERT ON dbo.ServerLogonHistory TO PUBLIC --Create the Logon Trigger Trigger_ServerLogon CREATE TRIGGER Trigger_ServerLogon
ON ALL SERVER FOR LOGON
AS BEGIN DECLARE @data XML SET @data = EVENTDATA() INSERT INTO dbo.ServerLogonHistory SELECT @data.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(512)') , @data.value('(/EVENT_INSTANCE/PostTime)[1]', 'datetime') , @data.value('(/EVENT_INSTANCE/SPID)[1]', 'nvarchar(4)') , @data.value('(/EVENT_INSTANCE/ServerName)[1]', 'nvarchar(512)') , @data.value('(/EVENT_INSTANCE/LoginName)[1]', 'nvarchar(512)') , @data.value('(/EVENT_INSTANCE/LoginType)[1]', 'nvarchar(512)') , @data.value('(/EVENT_INSTANCE/SID)[1]', 'nvarchar(512)') , @data.value('(/EVENT_INSTANCE/ClientHost)[1]', 'nvarchar(512)') , @data.value('(/EVENT_INSTANCE/IsPooled)[1]', 'nvarchar(1)') END GO
Solution: Below steps resolve my problem.
1.Connect SQL Server using sqlcmd go to run type cmd. You can get the command prompt. Now type below command:
sqlcmd -S LocalHost -d master –A
2.Now search for trigger :
SELECT * FROM sys.server_triggers
GO
Found the trigger i found the trigger “tddl_limitconnections”
3. Than i drop the trigger.
drop trigger tddl_limitconnections on all server
GO
Now i am able to login using SQL Server Management Studio.