Hallo,
folgendes Problem stellt sich mir, wo ich derzeit nicht ganz weiter komme:
In einer Merge Replikations-Umgebung (Microsoft SQL Server 2008, SP 2, Standard Edition) treten hin und wieder Konflikte auf. Diese wurden bisher vom DBA gelöst, jedoch nur mit immensen Zeitaufwand, da die entsprechende Geschäftslogik von der Fachabteilung
eingeholt werden musste.
Nun soll diese Aufgabe an einen Benutzer übertragen werden, der die entsprechende Geschäftslogik kennt.
Nun habe ich den Benutzer in die Rolle MSmerge_[PublikationsGUID] auf der Publizierten Datenbank aufgenommen damit dieser die Publikation sehen kann. Jedoch kommt beim Aufruf des Konfliktmanagers die Rückmeldung, das keine Konflikte existieren. Mit
einem Benutzer der Mitglied der Rolle db_owner ist, sehe ich jedoch Konflikte. Über den Profiler habe ich gesehen, dass der Benutzer über die System Prozedur [sys].[sp_MShelpconflictpublications] auf jeder Datenbank prüft, ob Konflikte vorhanden
sind.
Versuche ich
GRANT EXECUTE ON [BenutzerDB].[sys].[sp_MShelpconflictpublications] TO [User]
GO
erhalte ich folgende Meldung:
Meldung 4629, Ebene 16, Status 10, Zeile 2
Für Katalogsichten mit Serverbereich oder gespeicherte Systemprozeduren bzw. erweiterte gespeicherte Prozeduren können nur Berechtigungen erteilt werden, <br/>wenn die aktuelle Datenbank die master-Datenbank ist.
Leider bekomme ich es nicht hin, den Benutzer auf der Benutzerdatenbank auf diese Prozedur zu berechtigen.
Die Rolle db_owner dem Benutzer zuzuordnen kommt aus Sicherheitsgründen nicht in Frage, da der Benutzer lediglich SUID Berechtigungen auf die Tabellen hat und ebenso auch keine Objekte anlegen (etc.) darf.
Hat hier jemand eine Idee oder Erfahrungen wie man die fachliche Ebene der Replikation auf einen fachlichen, nicht technischen, Mitarbeiter überträgt?
Viele Grüße,
Philipp Lenz