Benutzerverwaltung und Default Schema

03/12/2007 - 20:03 von Lutz Elßner | Report spam
(SQL Server 2005 EXPRESS)
In einer Sicht, die nicht dem Schema dbo gehört, wird auf eine dbo.Tabelle
verwiesen.
CREATE VIEW schema1.Sicht AS SELECT * FROM dbo.Tabelle WHERE Abteilung=1
CREATE VIEW schema2.Sicht AS SELECT * FROM dbo.Tabelle WHERE Abteilung=2

Der User hat das Schema der Sicht als Default-Schema und Rechte auf die
Sicht, aber nicht auf die Tabelle.
Wenn er nun die Sicht aufruft, kommt die Fehlermeldung, dass er SELECT Recht
auf dbo.Tabelle braucht.
Das soll ja damit gerade unterbunden werden.

Ich habe inzwischen einen Umweg über eine Hilfs-Sicht gefunden
CREATE VIEW dbo.Sicht1 AS SELECT * FROM dbo.Tabelle WHERE Abteilung=1
Hierauf kann mit einem Synonym "schema1.Sicht" verwiesen werden.

Wie kann ich aber ohne Umweg in einer Sicht auf Objekte in anderen Schemas
verweisen, ohne auf diese Objekte Rechte zu haben?


In der Beispiel Datenbank AdventureWorks gehören auch die Tabellen nicht dem
dbo, sondern dem selben Schema wie die Sichten. Da funktioniert so was.

Bei mir gehören alle Tabellen dem dbo, und Sichten sollen jedem User andere
Teilmengen daraus wiedergeben. Die Sichten sollen das Default Schema des
Users haben.


Ich habe das schon in der sqlserver Newsgroup gefragt, aber ich wollte es
noch mal versuchen besser zu formulieren.

Lutz
 

Lesen sie die antworten

#1 Carl Schaffert
03/12/2007 - 20:32 | Warnen spam
Hallo Lutz,

wie an anderer Stelle schon mal erwàhnt, verhàlt sich das mit Schematas und
Zugriffsrechten in den Datenbanken nicht gleich... SQL Server verhàlt sich
da völlig anders als z.B. Oracle...

Für SQL Server schaue dir das mal an:

http://technet.microsoft.com/de-de/...90387.aspx

I hope that helps ;-)


Gruß Carl

Ähnliche fragen