Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - Datenbankadministration » Benutzer- und Datenbanksicherheit » Benutzersicherheit (Rollen und Privilegien)

 

Eigentum an verschachtelten Objekten

Ansichten und Prozeduren können auf untergeordnete Objekte zugreifen, die andere Eigentümer haben. Wenn z.B. BenutzerA, BenutzerB, BenutzerC und BenutzerD vier verschiedene Benutzer sind, könnte BenutzerD.AnsichtD auf BenutzerC.AnsichtC basieren, die auf BenutzerB.AnsichtB basiert und die wiederum auf BenutzerA.TabelleA basiert. Ähnliches gilt für diese Prozeduren: BenutzerD.ProzedurD könnte BenutzerC.ProzedurC aufrufen, die wiederum BenutzerB.ProzedurB aufrufen könnte, die in BenutzerA.TabelleA einfügen könnte.

Die folgenden Regeln für Discretionary Access Control (DAC - beliebig bestimmbare Zugriffssteuerung) betreffen verschachtelte Ansichten und Tabellen:

  • Um eine Ansicht erstellen zu können, benötigt der Benutzer das SELECT-Privileg für alle Basisobjekte (z.B. Tabellen und Ansichten) in der Ansicht.

  • Damit der Zugriff auf eine Ansicht möglich ist, muss dem Eigentümer der Ansicht das entsprechende Privileg für die Basistabellen oder -ansichten (mit Administrationsrechten) erteilt worden sein und dem Benutzer muss das entsprechende Privileg für die Ansicht erteilt worden sein.

  • Das Aktualisieren mit WHERE-Klausel erfordert sowohl das SELECT-Privileg als auch das UPDATE-Privileg.

  • Wenn ein Benutzer Eigentümer der Tabellen in einer Ansichtsdefinition ist, kann der Benutzer über eine Ansicht auf die Tabellen zugreifen, auch wenn der Benutzer nicht der Eigentümer der Ansicht ist und ihm keine Zugriffsrechte für die Ansicht zugewiesen wurden.

Die folgenden DAC-Regeln betreffen verschachtelte Prozeduren:

  • Ein Benutzer benötigt keine Privilegien für die zugrunde liegenden Objekte (z.B. Tabellen, Ansichten oder Prozeduren), um eine Prozedur erstellen zu können.

  • Damit eine Prozedur ausgeführt werden kann, benötigt der Eigentümer der Prozedur die entsprechenden Privilegien für die von der Prozedur referenzierten Objekte.

  • Auch wenn ein Benutzer Eigentümer aller von einer Prozedur referenzierten Tabellen ist, kann der Benutzer die Prozedur nur dann ausführen, um auf die Tabellen zuzugreifen, wenn ihm das EXECUTE-Privileg für die Prozedur erteilt wurde.

Es folgen einige Beispiele, die dieses Verhalten beschreiben.


Beispiel 1: Benutzer1 erstellt Tabelle1 und Benutzer2 erstellt Ansicht2 für Tabelle1
Beispiel 2: Benutzer2 erstellt Prozedur2, die auf Tabelle1 zugreift
Beispiel 3: Benutzer1 erstellt Tabelle1, Benutzer2 erstellt Tabelle2 und Benutzer3 erstellt Ansicht3, die Tabelle1 und Tabelle2 verbindet