我有以下DDL觸發器我的服務器上DDL觸發器的登錄插入數據表
CREATE TRIGGER [DDLForLogin] ON ALL SERVER
FOR LOGON
AS BEGIN
DECLARE @data XML
SET @data = EVENTDATA()
IF EXISTS(SELECT * FROM sys.Databases WHERE NAME = 'DatabaseMaintenance') Begin
INSERT INTO DatabaseMaintenance.dbo.MyTable (UserName, HostName, ApplicationName, EventDataValue)
VALUES (CURRENT_USER, HOST_Name(), APP_NAME(),@Data)
END
END;
登錄爲Windows Authentication
插入mytable上一個行,但登錄爲SQL Server Authentication
以下錯誤提出:
Logon failed for login 'xxx' due to trigger execution.
Changed database context to 'master'.
Changed language setting to us_english. (Microsofr SQL Server, Error: 17892)
編輯
我GRANT INSERT
我的表PUBLIC
。
但沒有更改提出的錯誤。
EDIT2
我改變我的觸發和觸發
但引發的錯誤沒有變化添加With Execute AS 'sa'
。