FirebirdSQL logo

CREATE MAPPING

Verwendet für

Erstellen einer Zuordnung eines Sicherheitsobjekts

Verfügbar in

DSQL

Syntax
CREATE [GLOBAL] MAPPING name
  USING
    { PLUGIN plugin_name [IN database]
    | ANY PLUGIN [IN database | SERVERWIDE]
    | MAPPING [IN database] | '*' [IN database] }
  FROM {ANY type | type from_name}
  TO {USER | ROLE} [to_name]
Table 1. CREATE MAPPING-Anweisungsparameter
Parameter Beschreibung

name

MappingnameDie maximale Länge beträgt 63 Zeichen.Muss unter allen Mapping-Namen im Kontext (lokal oder GLOBAL) eindeutig sein.

plugin_name

Name des Authentifizierungs-Plugins

database

Name der Datenbank, gegen die sich authentifiziert wird

type

Der Typ des zuzuordnenden Objekts.Mögliche Typen sind pluginspezifisch.

from_name

Der Name des zuzuordnenden Objekts

to_name

Der Name des Benutzers oder der Rolle, dem bzw. der zugeordnet werden soll

Die CREATE MAPPING-Anweisung erstellt eine Zuordnung von Sicherheitsobjekten (z. B. Benutzer, Gruppen, Rollen) eines oder mehrerer Authentifizierungs-Plugins zu internen Sicherheitsobjekten - CURRENT_USER und CURRENT_ROLE.

Wenn die GLOBAL-Klausel vorhanden ist, wird die Zuordnung nicht nur für die aktuelle Datenbank, sondern für alle Datenbanken im selben Cluster, einschließlich Sicherheitsdatenbanken, angewendet.

Warning

Es kann globale und lokale Zuordnungen mit demselben Namen geben.Sie sind unterschiedliche Objekte.

Note

Die globale Zuordnung funktioniert am besten, wenn als Sicherheitsdatenbank eine Firebird 3.0- oder höhere Versionsdatenbank verwendet wird.Wenn Sie zu diesem Zweck eine andere Datenbank verwenden möchten – zum Beispiel mit Ihrem eigenen Provider – sollten Sie darin eine Tabelle namens RDB$MAP erstellen, mit der gleichen Struktur wie RDB$MAP in Firebird 3.0 oder höher und nur mit SYSDBA-Schreibzugriff.

Die USING-Klausel beschreibt die Mapping-Quelle.Es hat eine sehr komplexe Reihe von Optionen:

  • Ein expliziter Plugin-Name (PLUGIN plugin_name) bedeutet, dass dieser nur für dieses Plugin gilt

  • es kann jedes verfügbare Plugin verwenden (ANY PLUGIN);allerdings nicht, wenn die Quelle das Produkt einer vorherigen Zuordnung ist

  • es kann nur mit serverweiten Plugins (SERVERWIDE) zum Laufen gebracht werden

  • es kann nur mit früheren Mapping-Ergebnissen (MAPPING) funktionieren

  • Sie können die Verwendung einer bestimmten Methode unterlassen, indem Sie das Sternchen-Argument (*) verwenden

  • es kann den Namen der Datenbank angeben, die das Mapping für das FROM-Objekt definiert hat (IN database)

    Note

    Dieses Argument ist für die Zuordnung der serverweiten Authentifizierung nicht gültig.

Die FROM-Klausel beschreibt das abzubildende Objekt.Die FROM-Klausel hat ein obligatorisches Argument, den type des benannten Objekts.Es hat die folgenden Optionen:

  • Beim Zuordnen von Namen über Plugins wird type vom Plugin definiert

  • Beim Mapping des Produkts eines vorherigen Mappings kann type nur USER oder ROLE sein

  • Wenn ein expliziter from_name angegeben wird, wird dieser von diesem Mapping berücksichtigt

  • Verwenden Sie das Schlüsselwort ANY, um mit einem beliebigen Namen des angegebenen Typs zu arbeiten.

Die TO-Klausel gibt den Benutzer oder die Rolle an, die das Ergebnis der Zuordnung ist.Der to_name ist optional.Wenn er nicht angegeben wird, wird der ursprüngliche Name des zugeordneten Objekts verwendet.

Bei Rollen wird die durch eine Zuordnungsregel definierte Rolle nur angewendet, wenn der Benutzer beim Verbinden nicht explizit eine Rolle angibt.Die zugeordnete Rolle kann später in der Sitzung mit SET TRUSTED ROLE übernommen werden, auch wenn die zugeordnete Rolle dem Benutzer nicht explizit gewährt wird.

Wer kann Zuordnungen erstellen?

Die CREATE MAPPING-Anweisung kann ausgeführt werden durch:

docnext count = 9

CREATE MAPPING-Beispiele

  1. Aktivieren Sie die Verwendung der vertrauenswürdigen Windows-Authentifizierung in allen Datenbanken, die die aktuelle Sicherheitsdatenbank verwenden:

    CREATE GLOBAL MAPPING TRUSTED_AUTH
      USING PLUGIN WIN_SSPI
      FROM ANY USER
      TO USER;
  2. Aktivieren Sie den RDB$ADMIN-Zugriff für Windows-Administratoren in der aktuellen Datenbank:

    CREATE MAPPING WIN_ADMINS
      USING PLUGIN WIN_SSPI
      FROM Predefined_Group
      DOMAIN_ANY_RID_ADMINS
      TO ROLE RDB$ADMIN;
    Note

    Die Gruppe DOMAIN_ANY_RID_ADMINS existiert in Windows nicht, aber ein solcher Name würde vom Win_Sspi Plugin hinzugefügt, um eine genaue Abwärtskompatibilität zu gewährleisten.

  3. Ermöglichen Sie einem bestimmten Benutzer aus einer anderen Datenbank, mit einem anderen Namen auf die aktuelle Datenbank zuzugreifen:

    CREATE MAPPING FROM_RT
      USING PLUGIN SRP IN "rt"
      FROM USER U1 TO USER U2;
    Important

    Datenbanknamen oder Aliase müssen auf Betriebssystemen mit Dateinamen, bei denen die Groß-/Kleinschreibung beachtet wird, in doppelte Anführungszeichen gesetzt werden.

  4. Aktivieren Sie den SYSDBA des Servers (von der Hauptsicherheitsdatenbank), um auf die aktuelle Datenbank zuzugreifen.(Angenommen, die Datenbank verwendet eine nicht standardmäßige Sicherheitsdatenbank):

    CREATE MAPPING DEF_SYSDBA
      USING PLUGIN SRP IN "security.db"
      FROM USER SYSDBA
      TO USER;
  5. Stellen Sie sicher, dass Benutzer, die sich mit dem Legacy-Authentifizierungs-Plugin angemeldet haben, nicht zu viele Berechtigungen haben:

    CREATE MAPPING LEGACY_2_GUEST
      USING PLUGIN legacy_auth
      FROM ANY USER
      TO USER GUEST;

ALTER MAPPING

Verwendet für

Ändern einer Zuordnung eines Sicherheitsobjekts

Verfügbar in

DSQL

Syntax
ALTER [GLOBAL] MAPPING name
  USING
    { PLUGIN plugin_name [IN database]
    | ANY PLUGIN [IN database | SERVERWIDE]
    | MAPPING [IN database] | '*' [IN database] }
  FROM {ANY type | type from_name}
  TO {USER | ROLE} [to_name]

Einzelheiten zu den Optionen finden Sie unter [fblangref40-security-mapping-create-de].

Mit der ALTER MAPPING-Anweisung können Sie jede der vorhandenen Mapping-Optionen ändern, aber eine lokale Mapping kann nicht in GLOBAL geändert werden oder umgekehrt.

Important

Globale und lokale Mappings gleichen Namens sind unterschiedliche Objekte.

Wer kann ein Mapping ändern?

The ALTER MAPPING statement can be executed by:

ALTER MAPPING-Beispiele

Zuordnung ändern
ALTER MAPPING FROM_RT
  USING PLUGIN SRP IN "rt"
  FROM USER U1 TO USER U3;

CREATE OR ALTER MAPPING

Verwendet für

Erstellen eines neuen oder Ändern eines bestehenden Mappings eines Sicherheitsobjekts

Verfügbar in

DSQL

Syntax
CREATE OR ALTER [GLOBAL] MAPPING name
  USING
    { PLUGIN plugin_name [IN database]
    | ANY PLUGIN [IN database | SERVERWIDE]
    | MAPPING [IN database] | '*' [IN database] }
  FROM {ANY type | type from_name}
  TO {USER | ROLE} [to_name]

Einzelheiten zu den Optionen finden Sie unter [fblangref40-security-mapping-create-de].

Die Anweisung CREATE OR ALTER MAPPING erstellt eine neue oder modifiziert eine vorhandene Zuordnung.

Important

Globale und lokale Mappings gleichen Namens sind unterschiedliche Objekte.

CREATE OR ALTER MAPPING-Beispiele

Erstellen oder Ändern einer Zuordnung
CREATE OR ALTER MAPPING FROM_RT
  USING PLUGIN SRP IN "rt"
  FROM USER U1 TO USER U4;

DROP MAPPING

Verwendet für

Löschen (Entfernen) einer Zuordnung eines Sicherheitsobjekts

Verfügbar in

DSQL

Syntax
DROP [GLOBAL] MAPPING name
Table 1. DROP MAPPING-Anweisungsparameter
Parameter Beschreibung

name

Name der Zuordnung

Die DROP MAPPING-Anweisung entfernt ein vorhandenes Mapping.Wenn GLOBAL angegeben ist, wird eine globale Zuordnung entfernt.

Important

Globale und lokale Mappings gleichen Namens sind unterschiedliche Objekte.

Wer kann ein Mapping löschen?

Die DROP MAPPING-Anweisung kann ausgeführt werden durch:

DROP MAPPING-Beispiele

Zuordnung ändern
DROP MAPPING FROM_RT;