[SQL 2008] Leserechte für Tabelle in anderer Datenbank vergeben

26/11/2010 - 11:48 von Stefan Dase | Report spam
Hallo allerseits,

ich habe auf einem SQL Server 2008 eine neue Datenbank 'LNG' erstellt.
Alle Benutzer, die Zugriff auf diese Datenbank erhalten, werden in eine
bestimmte Active Directory-Gruppe 'LNG DB' aufgenommen. Diese Gruppe
wird als Anmeldung für den Server eingetragen und erhàlt auf die
Datenbank 'LNG' eine Rolle 'app_user'.

Innerhalb der Datenbank klappt alles wunderbar, wenn ich der Rolle auf
die Tabellen und Sichten Rechte für SELECT, INSERT, UPDATE und DELETE
zuweise.

Ich möchte nun aber Daten aus drei Tabellen einer anderen Datenbank
'MYSYS' lesbar machen. Dazu habe ich zunàchst jeweils eine Sicht in
'LNG' erstellt und der Rolle hierauf das SELECT-Recht gewàhrt.
Allerdings bekomme ich folgende Fehlermeldung:

"Der Serverprinzipal 'Domàne\Benutzer' kann unter dem aktuellen
Sicherheitskontext nicht auf die 'MYSYS'-Datenbank zugreifen."

Wie kann ich es einstellen, dass die Tabellen in 'MYSYS' nur gelesen
werden können? Muss ich der AD-Gruppe zusàtzlich noch Leserechte in
'MYSYS' geben?

Vielen Dank für eure Hilfe,
Stefan
 

Lesen sie die antworten

#1 Stefan Dase
26/11/2010 - 15:50 | Warnen spam
Ein Beitrag bei Xing hat mich nun auf die Spur gebracht. Unter dem
Stichwort Cross Database Ownership wurde auf folgende Tatsache hingewiesen:

"But if the login does not have the ability to connect to that second
database, the query will fail."

Daher habe ich der AD-Gruppe nun auch auf der zweiten Datenbank eine
Anmeldung und Leserechte gewàhrt, damit làuft es nun.

Aber irgendwie schade, dass ich nicht die Daten auslesen kann, ohne den
Benutzer explizit in der zweiten DB anzugeben. So etwas wie in Access
"WITH OWNERACCESS OPTION" scheint auf dem SQL Server nicht zu funktionieren.

Viele Grüße,
Stefan

Ähnliche fragen