Estou executando a replicação de mesclagem com o SQL 2012.
Parece haver uma consequência desagradável dos gatilhos de exclusão adicionados para replicação no SQL 2012.
Dentro dos gatilhos de exclusão estão estes,
select @xe_message = CAST('replica_id: ' + convert(nvarchar(100), @replnick) + ', article_id: ' + convert(nvarchar(100), @tablenick) + ', rowguid: ' + case when @article_rows_deleted = 1 then convert(nvarchar(100), @rowguid) else N'0' end + ', generation: ' + case when @is_mergeagent = 1 then N'0' else convert(nvarchar(100), @newgen) end + ', Reason: -1' AS varbinary(1000));
exec master..sp_repl_generateevent 1, N'Event : ppm_insert', @xe_message
E ocorre um erro quando alguém exclui se não estiver na função sysadmin,
Msg 8189, Level 14, State 10, Procedure sp_repl_generateevent, Line 1
You do not have permission to run 'SP_TRACE_GENERATEEVENT'.
Então, você está me dizendo que todo usuário do meu banco de dados precisa ter acesso de administrador de sistema se for fazer exclusões?
Isso parece errado. Existe uma maneira de desativar esse rastreamento ou uma maneira alternativa de remover esse requisito?
Não, de acordo com a documentação do BOL em sp_trace_generateevent :
Este é agora um bug conhecido (presente apenas no SQL 2012), que a Microsoft está corrigindo no momento. A solução alternativa é dar
ALTER TRACE
permissão ao usuário até que seja resolvido.Você pode acompanhar o status no Connect .
Este problema foi resolvido ( KB3155209 ) no SQL Server 2012 SP2 CU12