Datenbankrollen und Zugriffskontrolle

Datenbankdesign

Lis Sulmont

Curriculum Manager

Zugriff auf eine Ansicht gewähren und widerrufen

GRANT privilege(s) oder REVOKE privilege(s)

ON object

TO role oder FROM role

  • Privilegien: SELECT, INSERT, UPDATE, DELETE, usw.
  • Objekte: Tabelle, Ansicht, Schema usw.
  • Rollen: ein Datenbankbenutzer oder eine Gruppe von Datenbankbenutzern
GRANT UPDATE ON ratings TO PUBLIC; 
REVOKE INSERT ON films FROM db_user; 
Datenbankdesign

Datenbankrollen

  • Verwalte die Zugriffsrechte für die Datenbank
  • Eine Datenbankrolle ist eine Entität, die folgende Informationen enthält:
    • Die Rechte der Rolle festlegen
      • Kannst du dich einloggen?
      • Kannst du Datenbanken erstellen?
      • Kannst du in Tabellen schreiben?
    • Mit dem Client-Authentifizierungssystem interagieren
      • Passwort
  • Rollen können einem oder mehreren Benutzern zugewiesen werden.
  • Rollen gelten global für eine Datenbankcluster-Installation.
Datenbankdesign

Erstelle eine Rolle

  • Leere Rolle
CREATE ROLE data_analyst;
  • Rollen mit bestimmten Attributen
CREATE ROLE intern WITH PASSWORD 'PasswordForIntern' VALID UNTIL '2020-01-01';
CREATE ROLE admin CREATEDB;
ALTER ROLE admin CREATEROLE;
1 http://bit.ly/postgresql_attributes
Datenbankdesign

GRANT und die Privilegien „ REVOKE “ aus Rollen

GRANT UPDATE ON ratings TO data_analyst;
REVOKE UPDATE ON ratings FROM data_analyst;

Die verfügbaren Berechtigungen in PostgreSQL sind:

  • SELECT und INSERT`UPDATE`
1 http://bit.ly/postgresql_privileges
Datenbankdesign

Benutzer und Gruppen (sind beides Rollen)

  • Eine Rolle ist so was wie ein Benutzer oder eine Gruppe.
    • Benutzerrollen
    • Gruppenrollen

Grafik zu Rollen, bei der der äußere Kreis eine Gruppenrolle und die drei inneren Kreise innerhalb des äußeren Kreises Benutzerrollen darstellen

Datenbankdesign

Benutzer und Gruppen (sind beides Rollen)

Gruppenrolle

CREATE ROLE data_analyst;

Benutzerrolle

CREATE ROLE intern WITH PASSWORD 'PasswordForIntern' VALID UNTIL '2020-01-01';
Datenbankdesign

Benutzer und Gruppen (sind beides Rollen)

Gruppenrolle

CREATE ROLE data_analyst;

Benutzerrolle

CREATE ROLE alex WITH PASSWORD 'PasswordForIntern' VALID UNTIL '2020-01-01';

GRANT data_analyst TO alex;
REVOKE data_analyst FROM alex;
Datenbankdesign

Häufige PostgreSQL-Rollen

Rolle Zugelassener Zugang
pg_read_all_settings Lies alle Konfigurationsvariablen, auch die, die normalerweise nur Superuser sehen können.
pg_read_all_stats Lies alle pg_stat_*-Ansichten und nutze verschiedene statistikbezogene Erweiterungen, auch die, die normalerweise nur Superuser sehen können.
pg_signal_backend Signale an andere Backends schicken (z. B.: Abfrage abbrechen, beenden).
Mehr... Mehr...
1 http://bit.ly/default_roles_postgresql
Datenbankdesign

Vorteile und Nachteile von Rollen

Vorteile

  • Rollen bleiben auch nach dem Löschen von Benutzern bestehen.
  • Rollen können vor Benutzerkonten erstellt werden.
  • DBAs Zeit sparen

Stolperfallen

  • Manchmal gibt eine Rolle einem bestimmten Benutzer zu viel Zugriff.
    • Du musst aufpassen.
Datenbankdesign

Lass uns üben!

Datenbankdesign

Preparing Video For Download...