Verwenden von gsec mit RDB$ADMIN-Rechten
Um die Benutzerverwaltung mit gsec durchzuführen, muss der Benutzer den zusätzlichen Schalter -role rdb$admin
bereitstellen.
RDB$ADMIN-Rechten
Um die Benutzerverwaltung mit gsec durchzuführen, muss der Benutzer den zusätzlichen Schalter -role rdb$admin
bereitstellen.
In einer regulären Datenbank wird die Rolle RDB$ADMIN
mit der üblichen Syntax zum Gewähren und Entziehen von Rollen gewährt und entzogen:
GRANT [ROLE] RDB$ADMIN TO username REVOKE [ROLE] RDB$ADMIN FROM username
Parameter |
Beschreibung |
username |
Name des Benutzers |
Um die Rolle RDB$ADMIN
zu erteilen und zu entziehen, muss der Erteilender als Administrator angemeldet sein..Siehe auchGRANT
, REVOKE
RDB$ADMIN
in einer regulären DatenbankUm seine RDB$ADMIN
-Privilegien auszuüben, muss der Stipendiat die Rolle bei der Verbindung mit der Datenbank in die Verbindungsattribute aufnehmen oder später mit SET ROLE
angeben.
AUTO ADMIN MAPPING
Windows-Administratoren werden nicht automatisch RDB$ADMIN
-Berechtigungen gewährt, wenn sie sich mit einer Datenbank verbinden (natürlich wenn Win_Sspi
aktiviert ist)Der Schalter AUTO ADMIN MAPPING
bestimmt nun datenbankweise, ob Administratoren über automatische RDB$ADMIN
-Rechte verfügen.Wenn eine Datenbank erstellt wird, ist sie standardmäßig deaktiviert.
Wenn AUTO ADMIN MAPPING
in der Datenbank aktiviert ist, wird es immer wirksam, wenn ein Windows-Administrator eine Verbindung herstellt:
mit Win_Sspi
-Authentifizierung und
ohne eine Rolle anzugeben
Nach einer erfolgreichen auto admin
-Verbindung wird die aktuelle Rolle auf RDB$ADMIN
gesetzt.
Wenn beim Connect eine explizite Rolle angegeben wurde, kann die Rolle RDB$ADMIN
später in der Sitzung mit SET TRUSTED ROLE
übernommen werden.
So aktivieren und deaktivieren Sie die automatische Zuordnung in einer regulären Datenbank:
ALTER ROLE RDB$ADMIN
SET AUTO ADMIN MAPPING; -- aktivieren
ALTER ROLE RDB$ADMIN
DROP AUTO ADMIN MAPPING; -- deaktivieren
Beide Anweisungen müssen von einem Benutzer mit ausreichenden Rechten ausgegeben werden, d. h.:
Der Datenbankbesitzer
Ein Administrator
Ein Benutzer mit der Berechtigung ALTER ANY ROLE
Note
|
Die Anweisung
ist eine vereinfachte Form einer
Dementsprechend ist die Anweisung
gleichbedeutend zum Statement
Für weitere Details, siehe auch [fblangref40-security-mapping-de] |
In einer regulären Datenbank wird der Status von AUTO ADMIN MAPPING
nur zur Verbindungszeit überprüft.Wenn ein Administrator die Rolle "RDB$ADMIN" hat, weil die automatische Zuordnung bei der Anmeldung aktiviert war, behält er diese Rolle für die Dauer der Sitzung bei, auch wenn er oder eine andere Person die Zuordnung in der Zwischenzeit deaktiviert.
Ebenso ändert das Einschalten von "AUTO ADMIN MAPPING" die aktuelle Rolle für Administratoren, die bereits verbunden waren, nicht in RDB$ADMIN
.
Die Anweisung ALTER ROLE RDB$ADMIN
kann AUTO ADMIN MAPPING
in der Sicherheitsdatenbank nicht aktivieren oder deaktivieren.Sie können jedoch ein globales Mapping für die vordefinierte Gruppe DOMAIN_ANY_RID_ADMINS
auf die Rolle RDB$ADMIN
wie folgt erstellen:
CREATE GLOBAL MAPPING WIN_ADMINS
USING PLUGIN WIN_SSPI
FROM Predefined_Group DOMAIN_ANY_RID_ADMINS
TO ROLE RDB$ADMIN;
Außerdem können Sie gsec verwenden:
gsec -mapping set gsec -mapping drop
Note
|
Abhängig vom administrativen Status des aktuellen Benutzers können beim Aufruf von gsec weitere Parameter benötigt werden, z. |
Nur SYSDBA kann AUTO ADMIN MAPPING
aktivieren, wenn es deaktiviert ist, aber jeder Administrator kann es deaktivieren.
Wenn AUTO ADMIN MAPPING
in gsec deaktiviert wird, schaltet der Benutzer den Mechanismus selbst aus, der ihm den Zugriff gewährt hat, und somit wäre er nicht in der Lage, AUTO ADMIN MAPPING
wieder zu aktivieren.Auch in einer interaktiven gsec-Sitzung wird die neue Flag-Einstellung sofort wirksam.
Als allgemeine Beschreibung ist ein Administrator ein Benutzer mit ausreichenden Rechten zum Lesen, Schreiben, Erstellen, Ändern oder Löschen von Objekten in einer Datenbank, für die der Administratorstatus dieses Benutzers gilt.Die Tabelle fasst zusammen, wie Superuser
-Rechte in den verschiedenen Firebird-Sicherheitskontexten aktiviert werden.
Benutzer |
RDB$ADMIN-Rolle |
Hinweis |
|
Auto |
Existiert automatisch auf Serverebene.Verfügt über alle Berechtigungen für alle Objekte in allen Datenbanken.Kann Benutzer erstellen, ändern und löschen, hat jedoch keinen direkten Fernzugriff auf die Sicherheitsdatenbank |
root-Benutzer unter POSIX |
Auto |
Genau wie |
Superuser unter POSIX |
Auto |
Genau wie |
Windows-Administrator |
Als |
Genau wie
|
Datenbankbesitzer |
Auto |
Wie |
Normaler Benutzer |
Muss vorher erteilt werden;muss beim Login angegeben werden |
Wie |
Benutzer unter POSIX-Betriebssystemen |
Muss vorher erteilt werden;muss beim Login angegeben werden |
Wie |
Windows-Benutzer |
Muss vorher erteilt werden;muss beim Login angegeben werden |
Wie |
Firebird 4.0 gewährte Benutzern nicht nur volle Administratorrechte, sondern führte auch Systemprivilegien ein, die es ermöglichen, normalen Benutzern eine Untergruppe von Administratorrechten zu erteilen, die in der Vergangenheit nur auf SYSDBA und Administratoren beschränkt waren.Beispielsweise:
Führen Sie Dienstprogramme wie gbak, gfix, nbackup usw. aus
Fahren Sie eine Datenbank herunter und bringen Sie sie online
Verfolgen Sie die Anhänge anderer Benutzer
Greifen Sie auf die Überwachungstabellen zu
Führen Sie Management-Anweisungen . aus
Die Implementierung definiert einen Satz von Systemberechtigungen, analog zu Objektberechtigungen, aus denen Listen privilegierter Aufgaben Rollen zugewiesen werden können.
Es ist auch möglich, einem Systemprivileg normale Privilegien zu erteilen, wodurch sich das Systemprivileg wie ein spezieller Rollentyp verhält.
Die Systemprivilegien werden über CREATE ROLE
und ALTER ROLE
zugewiesen.
Warning
|
Beachten Sie, dass jedes Systemprivileg ein sehr geringes Maß an Kontrolle bietet.Für einige Aufgaben kann es erforderlich sein, dem Benutzer mehr als eine Berechtigung zu erteilen, um eine Aufgabe auszuführen.Fügen Sie beispielsweise |
In der folgenden Tabelle sind die Namen der gültigen Systemberechtigungen aufgeführt, die Rollen gewährt und entzogen werden können.
USER_MANAGEMENT
|
Benutzer verwalten (in der Sicherheitsdatenbank angegeben) |
READ_RAW_PAGES
|
Seiten im Rohformat lesen mit |
CREATE_USER_TYPES
|
Hinzufügen/Ändern/Löschen von Nicht-System-Datensätzen in |
USE_NBACKUP_UTILITY
|
Verwenden von nbackup um Datenbankkopien zu erstellen |
CHANGE_SHUTDOWN_MODE
|
Datenbank herunterfahren und online schalten |
TRACE_ANY_ATTACHMENT
|
Verfolgen von Verbindungen anderer Benutzer |
MONITOR_ANY_ATTACHMENT
|
Überwachen (Tabellen |
ACCESS_SHUTDOWN_DATABASE
|
Zugriff auf die Datenbank, wenn sie heruntergefahren ist |
CREATE_DATABASE
|
Neue Datenbanken erstellen (in security.db angegeben) |
DROP_DATABASE
|
Diese Datenbank löschen |
USE_GBAK_UTILITY
|
Verwenden des gbak-Dienstprogramm |
USE_GSTAT_UTILITY
|
Verwenden des gstat-Dienstprogramm |
USE_GFIX_UTILITY
|
Verwenden des gfix-Dienstprogramm |
IGNORE_DB_TRIGGERS
|
Engine anweisen, keine Trigger auf DB-Ebene auszuführen |
CHANGE_HEADER_SETTINGS
|
Parameter auf der DB-Header-Seite ändern |
SELECT_ANY_OBJECT_IN_DATABASE
|
Verwenden von |
ACCESS_ANY_OBJECT_IN_DATABASE
|
Zugriff (auf jede mögliche Weise) auf jedes Objekt |
MODIFY_ANY_OBJECT_IN_DATABASE
|
Beliebiges Objekt ändern (bis zum Ablegen) |
CHANGE_MAPPING_RULES
|
Authentifizierungszuordnungen ändern |
USE_GRANTED_BY_CLAUSE
|
Verwenden von |
GRANT_REVOKE_ON_ANY_OBJECT
|
|
GRANT_REVOKE_ANY_DDL_RIGHT
|
|
CREATE_PRIVILEGED_ROLES
|
Verwenden von |
MODIFY_EXT_CONN_POOL
|
Verwenden des Befehls |
REPLICATE_INTO_DATABASE
|
Verwenden der Replikations-API, um Änderungssets in die Datenbank zu laden |