CREATE TRIGGER SA_Check
ON ALL SERVER 
FOR LOGON
AS
BEGIN
 ****
go报错如下
--------------------------
消息 1084,级别 15,状态 1,过程 SA_Check,第 3 行
'LOGON' 是无效事件类型。求解。。

解决方案 »

  1.   

    --try
    CREATE TRIGGER SA_Check
    ON ALL SERVER WITH EXECUTE AS '登錄名'
    FOR LOGON
    AS
    BEGIN
     ****
    go
      

  2.   

    Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) 
    Oct 14 2005 00:33:37 
    Copyright (c) 1988-2005 Microsoft Corporation
    Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
    还是报同样的错。
      

  3.   


    CREATE TRIGGER SA_LoginIP_Check
    ON ALL SERVER WITH EXECUTE AS 'sa'
    FOR LOGON
    AS
    BEGIN
     declare @ip nvarchar(max)
     declare @loginName nvarchar(max)
     SELECT @ip=EVENTDATA().value
            ('(/EVENT_INSTANCE/ClientHost)[1]','nvarchar(max)')
        SELECT @loginName=EVENTDATA().value
            ('(/EVENT_INSTANCE/LoginName)[1]','nvarchar(max)')
        if @loginName='sa' 
          BEGIN
            if not exists(select 1 from ipTable where ip=@ip)
            rollback
          End
        end
    go
    报错如下
    --------------------------
    消息 1084,级别 15,状态 1,过程 SA_Check,第 3 行
    'LOGON' 是无效事件类型。
      

  4.   

    logon trigger 是在 SP2 时才加入的so...打上最新的补打吧