Create TRIGGER Logon_Trigger_HOST_IP
ON ALL SERVER FOR LOGON
AS
BEGIN
INSERT INTO [master].[dbo].[IP_AND_HOST]
--the auditing snippet below works fine in a
--login trigger,
--database trigger
--or any stored procedure.
SELECT
conn.session_ID as SPID,
conn.client_net_address as IPAddress,
sess.host_name as MachineName,
sess.program_name as ApplicationName,
login_name as LoginName
FROM sys.dm_exec_connections conn
inner join sys.dm_exec_sessions sess
on conn.session_ID=sess.session_ID
END
GO
通过执行上述触发器,用户无法登录; sa或任何受限制的用户。
我想允许所有用户登录并记录他们的数据。
为什么限制用户登录login failed due to trigger...
答案 0 :(得分:0)
可能是因为登录信息不允许INSERT
进入表格[master].[dbo].[IP_AND_HOST]
。结果,触发器失败,登录失败。
您需要在表guest
中允许INSERT
到[master].[dbo].[IP_AND_HOST]
,或者将触发器更改为在可以使用{{1}的用户凭据下运行}:EXECUTE AS Clause (Transact-SQL)