这个DMV Requires VIEW SERVER STATE permission on the server.
售一下权就可以了

解决方案 »

  1.   

    grant VIEW SERVER STATE to user
      

  2.   

    试试这个:use master
    gogrant view any definition to public
      

  3.   

    试过了,还是一样呢
    另外,我主要的想法是,因为想监控其他用户(自然其他用户不给他们权限),所以用EXECUTE AS提升权限,那么为什么EXECUTE AS没起到作用呢
      

  4.   

    试过了,还是一样呢
    另外,我主要的想法是,因为想监控其他用户(自然其他用户不给他们权限),所以用EXECUTE AS提升权限,那么为什么EXECUTE AS没起到作用呢
      

  5.   

    你试试create TRIGGER TR_t1_delete ON t1 WITH EXECUTE AS 'sa'
    FOR DELETE 
    AS  
    INSERT INTO log(SerialNumber,
            Company,
            Logged_USER,
            UPDATE_USER,
            AppName,
            spid,
            local_net_address,
            local_tcp_port,
            client_net_address,
            client_tcp_port,
            UPDATE_TIME) 
    SELECT A.serialnumber,
            A.Company,
            ORIGINAL_LOGIN(), 
            CURRENT_USER ,
            APP_NAME() ,
            @@spid AS spid, 
            B.local_net_address ,
            B.local_tcp_port ,
            B.client_net_address ,
            B.client_tcp_port ,
            GETDATE() 
    FROM deleted A inner join sys.dm_exec_connections B
    ON B.session_id = @@spid
      

  6.   

    这个试过了,因为sa是映射到dbo的,所以直接用sa这么执行的话会报错说sa找不到,而用dbo的话试过,不行呢。