Rechtemanager

<< Benutzermanager | IBExpert | Sekundärdateimanager >>

Die deutschsprachige Dokumentation wird seit dem 26. Juli 2016 nicht mehr gepflegt. Aktuelle und vollständige Dokumentation finden Sie auf der englischsprachigen Webseite: IBExpert Documentation


Rechtemanager

Der Rechtemanager wird verwendet, Datenbanksicherheit durch die Kontrolle von Userrechten einer bestimmten Datenbank zu verwalten. Sie können Zugangsrechte für Benutzer, Roles und Datenbankobjekte gewähren. Rechte für Datenbankobjekte können auf der Rechte-Seite in den Objekteditoren erteilt werden. (Dieses Feature ist leider nicht in der kostenlose IBExpert Personal Edition enthalten.)

Firebird 3.0 Support:

  • Firebird 3.0 Packages: seit IBExpert Version 2014.01.01.
  • Stored Funktionen: seit IBExpert Version 2014.03.16.
  • Privilegien auf UDFs implementiert in IBExpert Version 2014.06.17.
  • DDL-Privilegien Modus seit IBExpert Version 2015.03.14.

Sie können den Rechtemanager über den IBExpert Menüpunkt Nützliches / Rechtemanager, mit dem entsprechenden Symbol in der Nützliches Symbolleiste, oder mit einem Doppelklick auf einer Role im Datenbankexplorer starten. Alternativ können Sie den DB Explorer Rechtsklickmenüpunkt, Role editieren oder die Tastenkombination [Ctrl + O] verwenden.

Der Rechtemanager-Editor wird geöffnet:

(1) Toolbar: Die Symbolleiste zeigt den Aliasnamen für die aktuell ausgewählte verbundene Datenbank an. Weitere Datenbanken auf diesem Server können von der Drop-Down-Liste oben ausgewählt werden. Rechts gibt es zwei Symbol-Optionen, um das Refresh und Speichere Rechte in einem Skript zu ermöglichen. Die DDL Privilegien Modus-Button wurde in IBExpert Version 2015.03.14 aufgenommen. Wenn aktiviert, können Sie Rechten und Privilegien auf Metadaten-Objekten zuweisen. Weitere Information finden Sie unter Firebird 3.0 DDL Privilegien.

(2) Privilegien für: Die Aufklappliste (Standard = Benutzer) bietet verschiedene Gruppen an, deren Privilegien bearbeitet werden soll. Die angebotene Optionen sind:

Nach der Auswahl eines Datenbankobjektes wird eine vollständige Liste der User/Objekte in dieser Datebank im linken Fenster angezeigt.

Firebird 2.5 führte eine neue Role, RDB$ADMIN, für Datenbanken mit einer ODS Version 11.2 und höher ein. Diese Role erlaubt die Erteilung SYSDBA-ähnliche Rechte an normale User.

(3) Rechte an: Die Grants Symbolleiste ermöglicht den User, Rechte an ein oder mehrere Objekte für eine oder mehrere Operationen schnell zu erteilen oder aufzuheben. Diese Funktionen können auch im Rechtsklick-Menü gefunden werden (siehe unten).

(4) Filter: Es ist möglich, die Anzeige durch Verwendung der Aufklapplisten genauer zu spezifizieren, d.h. ob alle Datenbankobjekte (Standard), nur die Tabellen, Views oder Prozeduren angezeigt werden sollen. Weiterhin kann der User bestimmen, ob alle selektierten Objekte angezeigt werden sollen, oder nur diejenige mit Berechtigungen bzw. nur diejenige ohne Berechtigungen. Rechts von beiden Aufklapplisten befindet sich ein leeres Filterfeld für benutzerdefinierte Filter. Sie können auch durch Markieren der Checkboxen bestimmen, ob Systemtabellen angezeigt werden sollen oder ob der benutzerdefinierte Filter umgekehrt werden soll.

(5) Das Hauptfenster zeigt die Objektrechte im Gridform mit den Operationen Select, Update, Lösche, Insert, Ausführen und Referenz für alle aufgelisteten Objekte. Ein grüner Kreis bedeutet, dass Zugang für diese Operation an diesem Datenbankobjekt erteilt wurde; ein grüner Kreis auf einer Hand bedeutet, dass die GRANT WITH GRANT AUTHORITY-Operation erteilt wurde (d.h. der User darf seine Rechte an andere User weitergeben). UPDATE/REFERENCE Privilegien nur auf bestimmten Spalten von Tabellen/Views ist visuell erkennbar. Ein grauer Ball bedeutet, dass mindestens eine Spalte mit einem erteilten Privileg existiert. Ein grauer Ball in der Hand bedeutet, dass es mindestens eine Spalte mit einem erteilten Privileg mit Grant-Autorität gibt. Ein leeres Feld bedeutet, dass entweder keine Rechte erteilt wurden, oder sie wurden bereits aufgehoben.

Eine weitere Menüoption hier ist Zeige Feldrechte (Checkbox). Diese Option blendet das untere Fenster ein und aus (6), das die einzelnen Spalten für Tabellen und Views anzeigt. So können Update- und Referenz-Rechte für einzelne Felder des ausgewählten Objektes erteilt und aufgehoben werden. Referenz-Rechte sind wichtig für die Arbeit mit Primär- und Fremdschlüssel. Zum Beispiel, TABELLE_A erstellt einen Fremdschlüssel auf TABELLE_B. Wenn ein Datensatz in TABELLE_A hinzugefügt wird, muss TABELLE_B referenziert werden, ob die Dateneingabe erlaubt ist. Daher muss TABELLE_A REFERENCE-Rechte (auch als Read Permission bekannt) auf TABELLE_B haben.

Rechte können einfach durch einen Doppelklick (oder durch Nutzung der Leertaste) auf den Gridfeldern (in sowohl dem oberen (Objekt-)Fenster als auch dem unteren (Spalten-)Fenster) erteilt und aufgehoben werden. Alternativ, um mehrere Rechte (d.h. Select, Update, Löschen und Insert) an einem einzelnen Objekt oder ein Operationsrecht an alle angezeigten Objekte zu erteilen, nutzen Sie entweder die Symbolleiste oder das Rechtklick-Menü.

Vergessen Sie bitte nicht, dass Referenz-Rechte erlauben den User lediglich das Lesen von Datensätzen, wenn es eine Fremdschlüssel-Beziehung zu anderen Daten gibt. Und der Berechtigung für alle auf alles-Befehl darf nur vom Datenbankbesitzer oder dem SYSDBA erteilt werden.

Fast alle dieser Operationen können auch auf den Rechte-Seiten in den einzelnen Datenbankobjekteditorren durchgeführt werden. Diese Seiten wurden ursprünglich eingeführt, um den Entwickler an die Rechtevergebung zu erinnern, wenn Datenbankobjekte neu erstellt oder geändert werden. So kann der Entwickler bestehende Rechte für das Objekt prüfen und, wenn notwendig, nachträglich Rechte für neue oder bestehende Objekte erteilen.

Rechte werden allerdings in der Praxis normalerweise vom Frontend verwaltet. Es gibt in der Regel nur ein Systemnutzer, mit wem das Programm sich in die Datenbank einloggen kann. Für diejenige, die direkte SQL-Eingabe bevorzugen, lesen Sie bitte die Kapitel, GRANT und REVOKE nach.

zurück zum Seitenanfang

Ein aktives Objekt im Rechtemanager automatisch selektieren

Wenn ein aktiver Prozeduren-, View- oder Triggereditor auf dem Bildschirm geöffnet ist, wird das entsprechende Objekt automatisch nach dem Starten des Rechtemanagers selektiert:

zurück zum Seitenanfang

Zugang zu Prozeduren gewähren

Um einen User das Recht eine Prozedur auszuführen zu gewähren, nutzen Sie die Rechtemanager Ausführen-Spalte:

oder die SQL EXECUTE-Anweisung. Zum Beispiel, um Janet und John das EXECUTE-Recht auf der SP_Delete_Employee-Prozedur zu erteilen, verwenden Sie folgende SQL:

 GRANT EXECUTE
 ON PROCEDURE SP_Delete_Employee
 TO Janet, John;

Firebird/InterBase® behandelt Prozeduren als virtuelle Datenbank-Benutzer. Wenn eine Prozedur eine Tabelle modifiziert, muss die Prozedur die entsprechenden Privilegien auf der Tabelle besitzen. Der Benutzer benötigt lediglich Ausführen-Rechte auf der Prozedur und keine besondere Rechte auf der Tabelle. In dieser Situation führt die Prozedur die Änderungen für den Benutzer aus.

Wenn eine Prozedur eine andere Prozedur ausführen soll, wählen Sie einfach Prozeduren von der Privilegien für-Liste und Prozeduren von der Rechte an-Liste aus, und erteilen Sie das Ausführen-Recht auf der ausgesuchten Prozedur. Wenn Sie in SQL die GRANT-Anweisung verwenden, nennen Sie die Prozedur statt der oder die Benutzer (<user_list>).

zurück zum Seitenanfang

Verwendung der GRANT AUTHORITY-Parameter

Einen Benutzer, der bestimmte Rechte erhalten hat, darf auch die Autorität diese Rechte an andere weiterzugeben erteilt werden. Diese Weitergabe wird GRANT AUTHORITY genannt. Firebird/InterBase® erlaubt als Standard nur den Tabellenbesitzer und den SYSDBA dieses zusätzliches Recht an andere Benutzer zu vergeben.

Die Autorität, Rechte weiterzugeben, kann im IBExpert Rechtemanager oder auf den Rechte-Seiten in den Objekteditoren, durch Verwendung der Alle Rechte zuweisen mit Rechteweitergabe oder Rechte an alle zuweisen mit Rechteweitergabe Symbole oder Rechtsklickmenü erteilt werden:

Hier sieht man auch, welche Rechte mit Rechteweitergabe an welchen Usern und Roles bereits erteilt wurden.

In SQL die WITH GRANT OPTION-Klausel darf zusammen mit der Erteilung von Privilegien verwendet werden, um Benutzer die Weitergabe-Autorität zu erteilen (sehen Sie bitte GRANT statement für den vollständigen Syntax und Beispiele).

Firebird 3.0 USAGE-Privileg

Das USAGE-Privileg für Generatoren und Exceptions wurde in Firebird 3.0 eingeführt: Auszug aus The Firebird 3.0 Release Notes (27 January 2014 - Document v.0300-08 - for Firebird 3.0 Alpha 2):

Privilegien um weitere Metadatenobjekte zu schützen

Neue SQL-2008-konforme USAGE Berechtigung wird eingeführt, um andere Metadatenobjekte als Tabellen, Views, Prozeduren und Funktionen zu schützen.

Syntax

  GRANT USAGE ON <object type> <name> TO <grantee list>
  [<grant option> <granted by clause>]
  --
  REVOKE USAGE ON <object type> <name> FROM <grantee list>
  [<granted by clause>]
  --
  <object type> ::= {DOMAIN | EXCEPTION | GENERATOR | SEQUENCE | CHARACTER SET | COLLATION}

Notizen
Die anfängliche USAGE-Berechtigung wird dem Objektbesitzer (dem Benutzer, der das Objekt erstellte) gewährt. In Firebird 3.0 Alpha 1 werden lediglich USAGE-Berechtigungen für Exceptions (CORE-2884) und Generatoren / Sequenzen (gen_id, nächsten Wert für: CORE-2553) realisiert. Berechtigungen für andere Objekttypen werden in späteren Versionen validiert werden.

Firebird 3.0 DDL Privilegien

Seit IBExpert Version 2015.03.14 bietet der IBExpert Rechtemanager den Firebird 3.0 DDL Privilegien Modus an. DDL Privilegien sind ein neues Sicherheitsfeature in Firebird 3.0.

Folgendes ist ein Auszug (englischsprachig) aus dem The Firebird 3.0 Release Notes (8 December 2014 - Document v.0300-18 - for Firebird 3.0 Beta 1) Kapitel, Security:

User Privileges for Metadata Changes

Dmitry Yemanov
with Roman Simakov

In Firebird 3, the system tables are read-only. This SQL syntax provides the means to assign metadata write privileges to specified users or roles for specified objects. See Tracker item CORE-735.

Note: Some people have been applying the nickname DDL privileges to this feature. Don't confuse it with DDL triggers! A more useful nickname would be Metadata privileges.

Syntax Patterns

Granting metadata privileges:

 GRANT CREATE <object-type> 
   TO [USER | ROLE] <user-name> | <role-name> [WITH GRANT OPTION];

GRANT ALTER ANY <object-type>

   TO [USER | ROLE] <user-name> | <role-name> [WITH GRANT OPTION];
 GRANT DROP ANY <object-type>
   TO [USER | ROLE] <user-name> | <role-name> [WITH GRANT OPTION];

Revoking metadata privileges:

 REVOKE [GRANT OPTION FOR] CREATE <object-type>
   FROM [USER | ROLE] <user-name> | <role-name>;
 REVOKE [GRANT OPTION FOR] ALTER ANY <object-type>
   FROM [USER | ROLE] <user-name> | <role-name>;
 REVOKE [GRANT OPTION FOR] DROP ANY <object-type>
   FROM [USER | ROLE] <user-name> | <role-name>;

Special form for database access:

 GRANT CREATE DATABASE TO [USER | ROLE] <user-name> | <role-name>;
 GRANT ALTER DATABASE
   TO [USER | ROLE] <user-name> | <role-name> [WITH GRANT OPTION];
 GRANT DROP DATABASE
   TO [USER | ROLE] <user-name> | <role-name> [WITH GRANT OPTION];

 REVOKE CREATE DATABASE FROM [USER | ROLE] <user-name> | <role-name>;
 REVOKE [GRANT OPTION FOR] ALTER DATABASE
   FROM [USER | ROLE] <user-name> | <role-name>;
 REVOKE [GRANT OPTION FOR] DROP DATABASE
   FROM [USER | ROLE] <user-name> | <role-name>;

Notes on Usage

  • <object-type> can be any of the following:
CHARACTER SETCOLLATIONDOMAINEXCEPTION
FILTERFUNCTIONGENERATORPACKAGE
PROCEDUREROLESEQUENCETABLE
VIEW   

Note: The metadata for triggers and indices are accessed through the privileges for the table that owns them.

  • If the ANY option is used, the user will be able to perform any operation on any object
  • If the ANY option is absent, the user will be able to perform operations on the object only if he owns it
  • If the ANY option was acquired via a GRANT operation then, to revoke it, the REVOKE operation must accord with that GRANT operation.

Example

 GRANT CREATE TABLE TO Joe; 
 GRANT ALTER ANY TABLE TO Joe;
 REVOKE CREATE TABLE FROM Joe;

Quelle: Firebird 3.0 Release Notes von Helen Borrie (Collator/Editor): 8. Dezember 2014 - Dokument v.0300-18 - für Firebird 3.0 Beta 1.

Siehe auch:
deutschsprachig:
Role
Serversicherheit ISC4.GDB / SECURITY.FDB
Tabelleneditor/Rechte-Seite
Active User
englischsprachig:
SQL Language Reference: GRANT
SQL Language Reference: REVOKE
Firebird 2.0 & 2.1 Language Reference: REVOKE ADMIN OPTION
Configuring Firebird: security.fdb / security2.fdb
Firebird 2.1 Release Notes: Security in Firebird 2.1
Firebird 2.0.4 Release Notes: Security in Firebird 2
Firebird 2 Quick Start Guide: Server configuration and management
GSEC

zurück zum Seitenanfang
<< Benutzermanager | IBExpert | Sekundärdateimanager >>