Ich verwende einen Verbindungsserver, um Joins über zwei SQL Server aufzubauen. Für die Abfrage melde ich mich am Server A als Benutzer 1 mit Rechten auf die Datenbank X an. Als Verbindungsserver hat dieser SQL Server einen Eintrag zu Server B mit Benutzer 2/Passwort 2. Der Benutzer 2 hat auf Server B Rechte auf die Datenbank Y. Mit diesem Konstrukt kann ich erfolgreich gejointe Abfragen durchführen.
Nun habe ich die Situation, dass ein Kunde beide Datenbanken X und Y auf dem Server A hat. Der Benutzer 1 hat ebenfalls nur Rechte auf Datenbank X und Benutzer 2 nur auf Datenbank Y. Wenn ich nun einen Join zwischen Tabellen aus Datenbank X und Y erstelle, funktioniert dies weder mit Benutzer 1 noch mit Benutzer 2, was ja auch so gewollt ist.
Der Versuch auch hier einen Verbindungsserver zu definieren, scheint zunächst zu funktionieren, endet aber in der Fehlermeldung: Der Serverprinzipal 'Benutzer 1' kann unter dem aktuellen Sicherheitskontext nicht auf die Datenbank Y-Datenbank zugreifen.
Es scheint also so zu sein, dass bei diesem Szenario der Verbindungsserver (bzw. die Benutzereinstellungen) ignoriert werden.
Gibt es dennoch eine Möglichkeit ohne Änderungen der Rechte der Benutzer hier zum Ziel zu kommen?
TIA Stephan Frigge
P.S.: Probiert habe ich das beschriebene Verhalten in der Version 2008 R2