Warum Replikationslöschungen Systemadministratorzugriff erfordern?


7

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?

Antworten:



2

Dies ist jetzt ein bekannter Fehler (nur in SQL 2012 vorhanden), den Microsoft derzeit behebt. Umgehung besteht darin, dem Benutzer die ALTER TRACEBerechtigung zu erteilen, bis das Problem behoben ist.

Sie können den Status auf Verbinden verfolgen .


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.