Databases Reference
In-Depth Information
create table mitarbeiter(
id int primary key,
name varchar(30),
bueronr varchar(5),
gehalt decimal(6,2)
)
Nur Mitarbeiter aus der Personalabteilung sollen den vollständigen Zugriff auf
den gesamten Bestand der Tabelle haben. Alle anderen Mitarbeiter benötigen le-
senden Zugriff auf Informationen wie den Namen oder die Büronummer ihrer
Kollegen. Mit select -Rechten auf einzelne Spalten wären wir aus dem Schnei-
der, jedoch unterstützt längst nicht jeder SQL-Dialekt diese Syntax. Hier helfen
uns Views weiter:
Listing 16.1: select -Rechte mit Hilfe einer View einschränken
revoke all on mitarbeiter_detail
from public;
grant select on mitarbeiter_detail
to personenal;
create view mitarbeiter as
select id, name, bueronr
from mitarbeiter_detail;
grant select on mitarbeiter
to public
Zunächst entziehen wir allen Benutzern sämtliche Rechte und erteilen dann den
Mitarbeitern der Personalabteilung select -Rechte. Anschließend legen wir eine
View an, die alle Spalten bis auf gehalt enthält. Für diese View erteilen wir dann
allen Mitarbeitern des Unternehmens select -Rechte. Dieses Beispiel zeigt uns
eine weitere Möglichkeit, um Views sinnvoll zu nutzen.
16.4
Weitergabe von Rechten
In größeren Projekten arbeiten oft mehrere Entwickler an der gleichen Datenbank
und legen Tabellen an, die auch von Kollegen genutzt werden sollen. SQL bietet
uns für solche Szenarien eine Variante der grant -Anweisung:
grant select on personen
to entwickler
with grant option
Mit dieser Anweisung kann etwa der Eigentümer der Tabelle personen Kolle-
gen, die zur Rolle entwickler gehören, select -Rechte erteilen. Diese können
Search WWH ::




Custom Search