Deutsch   |   English
   
 digg.com  del.icio.us 

Rechteverwaltung

Mit Hilfe der Data Control Language (DCL) ist es möglich, die Sicherheit und den Zugriff auf die Datenbank zu steuern. Durch die Verwaltung von Benutzern und Rollen sowie die Gewährung von Privilegien kann feingranular unterschieden werden, wer welche Aktionen in der Datenbank ausführen darf.

Folgende SQL-Befehle sind Bestandteil der DCL:

  • CREATE USER: Anlegen eines Benutzers
  • ALTER USER: Ändern des Passworts
  • DROP USER: Löschen eines Benutzers
  • CREATE ROLE: Erzeugen einer Rolle
  • DROP ROLE: Löschen einer Rolle
  • GRANT: Gewährt Rollen, Systemprivilegien oder Objektprivilegien
  • REVOKE: Entzieht Systemprivilegien, Objektprivilegien oder Rollen
  • ALTER SCHEMA: Ändert den Besitzer eines Schemas (und damit aller darin enthaltenen Schemaobjekte)

User

Für jeden Benutzer, der sich mit der Datenbank verbinden will, muss von einem Administrator ein USER-Account angelegt worden sein (mit dem SQL-Befehl CREATE USER). Hierbei erhält der Benutzer ein Passwort, das er jederzeit ändern kann, und mit dem er sich gegenüber der Datenbank authentifiziert.

Damit ein Benutzer auch Aktionen in der Datenbank ausführen darf, benötigt er entsprechende Privilegien. Diese werden ihm von einem Administrator oder anderen Benutzern gewährt bzw. entzogen. Zum Beispiel muss ein Benutzer das Systemprivileg CREATE SESSION besitzen, um sich mit der Datenbank verbinden zu können. Will man einen Nutzer temporär deaktivieren, so entzieht man ihm dieses Systemprivileg.

Benutzernamen, Rollen und Passwörter sind case-insensitiv!

Um Queries auszuführen muss der Nutzer eine Reihe weiterer Privilegien besitzen:

  1. CREATE USER mike IDENTIFIED BY secret;
  2. GRANT CREATE SESSION TO mike;
  3. GRANT SELECT ON s1.tab1 TO mike;

Rollen

Rollen dienen der Gruppierung von Benutzern und können die Rechteverwaltung erheblich vereinfachen. Sie werden mit dem Befehl CREATE ROLE erzeugt. Einem Benutzer kann eine oder mehrere Rollen durch den SQL-Befehl GRANT zugewiesen werden. Dadurch erhält der Benutzer die Rechte der entsprechenden Rollen. Anstatt vielen "ähnlichen" Benutzern die gleichen Privilegien vergeben zu müssen, kann man einfach eine Rolle erzeugen und ihr die entsprechenden Privilegien gewähren. Durch die Zuweisung von Rollen zu Rollen ist sogar ein hierarchischer Aufbau von Privilegien möglich.

Es gibt einige vorangelegte Benutzer bzw. Rollen, die mit EXASolution ausgeliefert werden und mit Hilfe derer eine Rechteverwaltung erst ermöglicht wird.

  • Benutzer SYS
    Systembenutzer, der alle Rechte innehat und nicht gelöscht werden kann.
  • Rolle DBA
    Die Rolle DBA besitzt alle existierenden Systemprivilegien mit der ADMIN-Option. Diese Rolle kann nicht gelöscht werden.
  • Rolle PUBLIC
    Auch diese Rolle kann nicht gelöscht werden. Sie ist automatisch jedem Benutzer zugewiesen, kann aber über REVOKE auch entzogen werden.
  1. CREATE ROLE reader;
  2. GRANT SELECT ON s2.tab1 TO reader;
  3. GRANT SELECT ON s2.tab2 TO reader;
  4. GRANT reader TO mike;

Rollen können nicht deaktiviert werden (wie z.B. bei Oracle). Soll die Zuweisung zu einer Rolle wieder rückgängig gemacht werden, so kann man mit dem SQL-Befehl REVOKE die Rolle wieder entziehen.

Nachträgliche Änderungen (GRANT/REVOKE) an der Rolle wirken sich auch auf die Benutzer aus, die diese Rolle inne haben

Privilegien

Privilegien steuern den Zugriff auf die Datenbank. Es gibt keine ‚negativen Rechte’, die explizit bestimmte Aktionen untersagen. Mit den SQL-Befehlen GRANT und REVOKE werden Privilegien gewährt bzw. entzogen. Es wird zwischen zwei verschiedenen Privilegien-Arten unterschieden:

Systemprivilegien steuern generelle Rechte wie z.B. "Schema anlegen", "Benutzer anlegen", "auf beliebige Tabellen zugreifen" oder "die Datenbank herunterfahren".

Objektprivilegien erlauben den Zugriff auf einzelne Schemaobjekte (z.B. "SELECT-Zugriff auf die Tabelle t im Schema s"). Als Schemaobjekte werden Tabellen, Views, Funktionen und Prozeduren bezeichnet. Dabei ist zu beachten, dass jedes Schema und alle darin enthaltenen Schemaobjekte genau einem Benutzer oder einer Rolle gehören. Dieser Benutzer bzw. alle Inhaber dieser Rolle haben stets das Recht, diese Objekte zu löschen und anderen Nutzern darauf Zugriff zu erteilen.

Zugriffskontrolle bei SQL-Befehlen

Bei jedem SQL-Statement wird vor dessen Ausführung überprüft, ob der aktuelle Benutzer über die entsprechenden Rechte verfügt und, falls dies nicht der Fall ist, eine Fehlermeldung ausgegeben.

Zugriffsrechte auf einzelne Spalten einer Tabelle oder View werden nicht unterstützt. Soll nur ein Ausschnitt einer Tabelle für bestimmte Benutzer/Rollen sichtbar sein, so kann dies mit Hilfe von Views geschehen, die diesen Teil selektieren. Anstatt Zugriff auf die eigentliche Tabelle zu gewähren, wird dies nur für die erzeugte View erlaubt. Dadurch kann ein Zugriffsschutz für einzelne Spalten und/oder Zeilen realisiert werden.

Metainformationen zur Rechteverwaltung

Der Zustand der Rechteverwaltung in der Datenbank lässt sich über eine Vielzahl von Systemtabellen abfragen. In ihnen stehen Informationen über die existierenden Benutzer und Rollen sowie deren Rechte. Zudem kann ein Benutzer ermitteln, welche Rollen er einnimmt, auf welche Schemaobjekte er Zugriff hat, welche Privilegien er anderen gewährt hat und welche er selbst besitzt.

Nutzer, Rollen und Privilegien
  1. System- und Objektprivilegien können einzelnen Usern zugewiesen werden.
  2. Zusammenfassung  von System- und Objektprivilegien zu Rollen.
  3. Zuweisen der Rolle zu einem oder mehreren Benutzern.
  4. Zuweisen von Rollen zu anderen Rollen erzeugt eine Hierarchie innerhalb der Rollen. 

Benutzer, Rollen sowie Privilegien sind genauso transaktionsbasiert wie die Schemaobjekte der Datenbank. Das bedeutet, dass Änderungen erst dann sichtbar werden, wenn die Transaktion durch ein COMMIT abgeschlossen wird. Weil bei allen SQL-Befehlen lesend auf den eigenen Benutzer zugegriffen wird, um dessen Privilegien abzufragen, sollten DCL-Befehle (Data Control Language) möglichst immer mit eingeschaltetem AUTOCOMMIT durchgeführt werden. Ansonsten steigt die Gefahr von Konflikten zwischen Transaktionen.

 

Sie kommen nicht weiter?
DCL-Befehle
  • CREATE USER
  • ALTER USER
  • DROP USER
  • CREATE ROLE
  • DROP ROLE
  • GRANT
  • REVOKE
  • ALTER SCHEMA
Hinweis

Benutzernamen, Rollen und Passwörter sind case-insensitiv!

Benutzer, Rollen sowie Privilegien sind transaktionsbasiert!

Referenzen
  • AHOOLY
  • COOP
  • „Mit EXASolution sind wir für zukünftiges Datenwachstum bestens gerüstet. Dadurch, dass wir jetzt Geodaten verarbeiten, sprich die Dimension des Raumbezugs mit auswerten können, bieten wir unseren Kunden ganz neue Analysemöglichkeiten und noch umfassendere Marktübersichten. Wir sind sehr zufrieden mit der neuen Lösung, können flexibel auf zukünftige Anforderungen reagieren und trotzdem unsere Total Cost of Ownership reduzieren, da der so gewählte BI-Stack unsere Vision eines „Lean-BI“ in vollem Umfang unsterstützt.“

    Guido Niermann, IT-Leiter, Dataforce GmbH

    Dataforce
  • "Durch die Einbindung von EXASOL können wir unseren Kunden ein ganz neues Erlebnis bezüglich der explorativen Datenanalyse bieten… Neben der Technologie waren wir vor allem mit der Pre-Sales Beratung und dem Support während der Integration äußerst zufrieden."

     Martin Heink
    Geschäftsführer und Inhaber, econda GmbH 

    Econda
  • "Entscheidend für die IMS Health war insbesondere, dass wir uns durch einen sehr schnell aufgesetzten Proof of Concept von der Leistungsfähigkeit von EXASolution direkt überzeugen konnten."

     Michael Kempke
    Director Data Collection Global Operations, IMS Health GmbH & Co. OHG

    IMS
  • "Mit der innovativen Datenbank von EXASOL können wir komplexe Berechnungen genauer und umfangreicher durchführen. Das gibt uns einen signifikanten Technologievorsprung gegenüber der Konkurrenz."

     Tobias Kiessling
    CTO, intelliAd 

    Intelliad
  • "Die durchgängig hohe Leistung und die Möglichkeit, Echtzeitanalysen fahren zu können, waren für uns ausschlaggebend bei der Wahl von EXASolution."

     Tobias Kroha, Geschäftsführer der für das m-pathy-Projekt verantwortlichen seto GmbH

    m-pathy
  • Media Control
  • Olympus
  • "Wir haben uns für EXASolution entschieden, da die Hochleistungsdatenbank mit den zu erwartenden großen Datenmengen sehr gut umgehen kann und optimale Flexibilität bietet."

     Dr. Michael Röbbecke
    (ehem.) Geschäftsführer, RatePAY 

    RatePAY
  • "Mit EXASolution können wir unsere Geschäftsprozesse deutlich optimieren." 

     Gerhard Zapf
    Projektleiter, Semikron 

    Semikron
  • "Ein zuverlässiger und schneller Support, eine bessere Kundenbetreuung sowie eine bewiesene Fachkompetenz…"

     David Hodge
    IT Director, Sony Music Entertainment Germany 

    Sony Music
  • SOQUERO
  • SponsorPay
  • Stayfriends
  • "Die Datenbank von EXASOL ist Technik made in Germany, auf die wir uns langfristig verlassen können. Da sie bei steigendem Datenvolumen selbstständig skaliert und auch physisch beliebig erweitert werden kann, wächst unsere Datenbank mit unserem Unternehmen, und wir können auch in Zukunft flexibel und schnell auf neue Anforderungen reagieren."

     Heinrich Zetlmayer
    Geschäftsführer, Turtle Entertainment 

    Turtle Entertainment
  • United Internet Dialog
  • "Mit EXASolution haben wir eine Lösung erworben, die unsere hohen Leistungsansprüche komplexer Analysen bei steigenden Datenmengen für unsere Kunden optimal erfüllt." 

     Christian Sauer
    Geschäftsführer, Webtrekk GmbH 

    Webtrekk
  • "Wir haben uns nach einem ausgiebigen Benchmark-Test für die Lösung von EXASOL entschieden. Die hohe Performance des Systems, das Preis-/Leistungs-Verhältnis und der Service haben uns vollauf überzeugt"

    Dr. Ulrich Fricke
    Leiter Business Intelligence, XING AG 

    Xing
  • "Neben Wirtschaftlichkeit, Geschwindigkeit und hoher Leistungsfähigkeit war Flexibilität eines der entscheidenden Kriterien bei der Wahl unserer Datenbank… Die neue Datenbank bietet uns diese Skalierbarkeit bei reduzierten Total Cost of Ownership. So können wir auch in Zukunft immer die optimale Analyseleistung für unsere Kunden erbringen…"

     Sebastian Hoop
    Head of Operations, xplosion interactive gmbh 

    Xplosion
  • Zalando