SQL Server EVENTDATA() 无法从 MAC SQL Pro for SQL Server 工作
SQL Server EVENTDATA() not working from MAC SQL Pro for SQL Server
SQL Server EVENTDATA() 无法从 MAC SQL Pro for SQL Server 运行。我正在使用触发器来验证登录到 SQL 服务器的用户的 IP 地址。这是我的触发器:
CREATE TRIGGER [trLogOnCheckIP]
ON ALL SERVER WITH EXECUTE AS 'sa' FOR LOGON
AS
BEGIN
DECLARE @IPAddress NVARCHAR(50)
SET @IPAddress = EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]',
'NVARCHAR(50)') ;
IF @IPAddress IS NULL OR NOT EXISTS (SELECT IP
FROM master..ValidIPAddress
WHERE IP = @IPAddress)
BEGIN
-- If login is not a valid one, then undo login process
ROLLBACK --Undo login process
INSERT INTO master..RejectedLogIn (IP) VALUES (@IPAddress)
END
END
我在 RejectedLogIn
中没有任何行,用户无法登录,出现触发错误。执行 EVENTDATA()
时可能会失败。如果我注释掉触发器的主体,它就会起作用。
我通过设置以下变量解决了这个问题:
SET
ANSI_NULLS,
QUOTED_IDENTIFIER,
CONCAT_NULL_YIELDS_NULL,
ANSI_WARNINGS,
ANSI_PADDING
ON;
我在查看服务器日志后才意识到这一点:
SELECT failed because the following SET options have incorrect settings: 'CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS, ANSI_PADDING'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations.
SQL Server EVENTDATA() 无法从 MAC SQL Pro for SQL Server 运行。我正在使用触发器来验证登录到 SQL 服务器的用户的 IP 地址。这是我的触发器:
CREATE TRIGGER [trLogOnCheckIP]
ON ALL SERVER WITH EXECUTE AS 'sa' FOR LOGON
AS
BEGIN
DECLARE @IPAddress NVARCHAR(50)
SET @IPAddress = EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]',
'NVARCHAR(50)') ;
IF @IPAddress IS NULL OR NOT EXISTS (SELECT IP
FROM master..ValidIPAddress
WHERE IP = @IPAddress)
BEGIN
-- If login is not a valid one, then undo login process
ROLLBACK --Undo login process
INSERT INTO master..RejectedLogIn (IP) VALUES (@IPAddress)
END
END
我在 RejectedLogIn
中没有任何行,用户无法登录,出现触发错误。执行 EVENTDATA()
时可能会失败。如果我注释掉触发器的主体,它就会起作用。
我通过设置以下变量解决了这个问题:
SET
ANSI_NULLS,
QUOTED_IDENTIFIER,
CONCAT_NULL_YIELDS_NULL,
ANSI_WARNINGS,
ANSI_PADDING
ON;
我在查看服务器日志后才意识到这一点:
SELECT failed because the following SET options have incorrect settings: 'CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS, ANSI_PADDING'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations.