Ich führe die Merge-Replikation mit SQL 2012 aus.
Die für die Replikation in SQL 2012 hinzugefügten Löschauslöser scheinen eine schlimme Folge zu sein.
Innerhalb der Löschauslöser sind dies:
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
Und ein Fehler tritt auf, wenn jemand einen Löschvorgang ausführt, wenn er nicht in der Systemadministratorrolle ist.
Msg 8189, Level 14, State 10, Procedure sp_repl_generateevent, Line 1
You do not have permission to run 'SP_TRACE_GENERATEEVENT'.
Wollen Sie mir also sagen, dass jeder Benutzer meiner Datenbank über Systemadministratorzugriff verfügen muss, wenn er Löschvorgänge ausführen möchte?
Das scheint falsch zu sein. Gibt es eine Möglichkeit, diese Ablaufverfolgung zu deaktivieren, oder eine alternative Möglichkeit, diese Anforderung zu entfernen?