Sichten mit gleichen Namen und verschiedenen Schemas

03/12/2007 - 00:00 von Lutz Elßner | Report spam
CREATE VIEW schema1.Sicht AS SELECT * FROM dbo.Tabelle WHERE Abteilung=1
CREATE VIEW schema2.Sicht AS SELECT * FROM dbo.Tabelle WHERE Abteilung=2
Nach diesem Muster habe ich mehrere Sichten mit gleichem Name erzeugt.
Und auf jede Sicht hat ein anderer User SELECT Recht.

SELECT * FROM schema1.Sicht
aufgerufen von dem angemeldeten User
bringt die Fehlermeldung dass SELECT Recht auf dbo.Tabelle fehlt.
Das Recht auf Tabellen soll damit aber gerade unterbunden werden.

Mit einer zusàtzlichen Hilfs-Sicht, die niemand direkt aufruft:
CREATE VIEW dbo.Sicht1 AS SELECT * FROM dbo.Tabelle WHERE Abteilung=1
Und Erteilung von SELECT Recht an den User

und Ändernung der ursprünglichen Sicht
CREATE VIEW schema1.Sicht AS SELECT * FROM dbo.Sicht1
funktioniert es wie erwartet.


Wie ist es möglich in einer Sicht auf Objekte in anderen Schemas
zuzugreifen, ohne auf die Objekte selbst Zugriff zu haben?

Oder wie erreicht man sonst, dass Programmcode, abhàngig vom angemeldeten
Benutzer, jeweils nur die Daten seiner Abteilung sieht?

Ich denke dazu sind Schemas da?

Lutz
 

Lesen sie die antworten

#1 Manfred Sorg
03/12/2007 - 09:44 | Warnen spam
Hallo Lutz,

ich kenne mich da zwar auch nur wenig aus, ich würde aber bei den
Berechtigungen des Anwenders auf das Schema suchen.

Viel Erfolg, Manfred

Ähnliche fragen