Gewähren und Widerrufen von Berechtigungen für RDS für Db2 - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Gewähren und Widerrufen von Berechtigungen für RDS für Db2

Benutzer erhalten Zugriff auf Datenbanken, wenn sie Mitglied von Gruppen sind, die Datenbanken zugeordnet sind.

Gehen Sie wie folgt vor, um Berechtigungen zu gewähren oder zu widerrufen und somit den Zugriff auf Ihre Datenbank zu steuern.

Bei diesen Verfahren wird IBM Db2 CLP auf einem lokalen Computer verwendet, um eine Verbindung zu einer DB-Instance von RDS für Db2 herzustellen. Achten Sie darauf, den TCPIP-Knoten und die Datenbank zu katalogisieren, um eine Verbindung zu Ihrer DB-Instance von RDS für Db2 herzustellen, die auf Ihrem lokalen Computer ausgeführt wird. Weitere Informationen finden Sie unter Herstellen einer Verbindung zu Ihrer DB-Instance von RDS für Db2 mit IBM Db2 CLP.

Gewähren von Benutzerzugriff auf Ihre Datenbank

So gewähren Sie einem Benutzer Zugriff auf Ihre Datenbank
  1. Stellen Sie mithilfe des Hauptbenutzernamens und Hauptpassworts für Ihre DB-Instance von RDS für Db2 eine Verbindung zur rdsadmin-Datenbank her. Ersetzen Sie im folgenden Beispiel master_username und master_password durch Ihre eigenen Informationen.

    db2 connect to rdsadmin user master_username using master_password

    Die Ausgabe dieses Befehls sieht etwa so aus:

    Database Connection Information Database server = DB2/LINUXX8664 11.5.8.0 SQL authorization ID = ADMIN Local database alias = RDSADMIN
  2. Fügen Sie Ihrer Autorisierungsliste einen Benutzer hinzu, indem Sie rdsadmin.add_user aufrufen. Weitere Informationen finden Sie unter rdsadmin.add_user.

    db2 "call rdsadmin.add_user( 'username', 'password', 'group_name,group_name')"
  3. (Optional) Fügen Sie dem Benutzer weitere Gruppen hinzu, indem Sie rdsadmin.add_groups aufrufen. Weitere Informationen finden Sie unter rdsadmin.add_groups.

    db2 "call rdsadmin.add_groups( 'username', 'group_name,group_name')"
  4. Bestätigen Sie die Berechtigungen, die dem Benutzer zur Verfügung stehen. Ersetzen Sie im folgenden Beispiel rds_database_aliasmaster_user, und master_password durch Ihre eigenen Informationen. Ersetzen Sie es auch username durch den Benutzernamen des Benutzers.

    db2 terminate db2 connect to rds_database_alias user master_user using master_password db2 "SELECT SUBSTR(AUTHORITY,1,20) AUTHORITY, D_USER, D_GROUP, D_PUBLIC FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('username', 'U') ) AS T ORDER BY AUTHORITY"

    Die Ausgabe dieses Befehls sieht etwa so aus:

    AUTHORITY D_USER D_GROUP D_PUBLIC -------------------- ------ ------- -------- ACCESSCTRL N N N BINDADD N N N CONNECT N N N CREATETAB N N N CREATE_EXTERNAL_ROUT N N N CREATE_NOT_FENCED_RO N N N CREATE_SECURE_OBJECT N N N DATAACCESS N N N DBADM N N N EXPLAIN N N N IMPLICIT_SCHEMA N N N LOAD N N N QUIESCE_CONNECT N N N SECADM N N N SQLADM N N N SYSADM * N * SYSCTRL * N * SYSMAINT * N * SYSMON * N * WLMADM N N N
  5. Gewähren Sie der Gruppe, zu der Sie den Benutzer hinzugefügt haben, die Rollen ROLE_NULLID_PACKAGES, ROLE_TABLESPACES und ROLE_PROCEDURES von RDS für Db2. Weitere Informationen finden Sie unter Standardrollen in Amazon RDS für Db2.

    Anmerkung

    Wir erstellen DB-Instances von RDS für Db2 im RESTRICTIVE-Modus. Daher gewähren die Rollen ROLE_NULLID_PACKAGES, ROLE_TABLESPACES und ROLE_PROCEDURES von RDS für Db2 Ausführungsberechtigungen für NULLID-Pakete für IBM Db2 CLP und Dynamic SQL. Diese Rollen gewähren auch Benutzerberechtigungen für Tablespaces.

    1. Stellen Sie eine Verbindung zu Ihrer Db2-Datenbank her. Ersetzen Sie im folgenden Beispiel database_namemaster_user, und master_password durch Ihre eigenen Informationen.

      db2 connect to database_name user master_user using master_password
    2. Gewähren Sie einer Gruppe die Rolle ROLE_NULLED_PACKAGES. Ersetzen Sie im folgenden Beispiel group_name durch den Namen der Gruppe, zu der Sie die Rolle hinzufügen möchten.

      db2 "grant role ROLE_NULLID_PACKAGES to group group_name"
    3. Gewähren Sie derselben Gruppe die Rolle ROLE_TABLESPACES. Im folgenden Beispiel group_name ersetzen Sie es durch den Namen der Gruppe, zu der Sie die Rolle hinzufügen möchten.

      db2 "grant role ROLE_TABLESPACES to group group_name"
    4. Gewähren Sie derselben Gruppe die Rolle ROLE_PROCEDURES. Im folgenden Beispiel group_name ersetzen Sie es durch den Namen der Gruppe, zu der Sie die Rolle hinzufügen möchten.

      db2 "grant role ROLE_PROCEDURES to group group_name"
  6. Gewähren Sie der Gruppe, zu der Sie den Benutzer hinzugefügt haben, die Berechtigungen connect, bindadd, createtab und IMPLICIT_SCHEMA. Im folgenden Beispiel group_name ersetzen Sie es durch den Namen der zweiten Gruppe, zu der Sie den Benutzer hinzugefügt haben.

    db2 "grant usage on workload SYSDEFAULTUSERWORKLOAD to public" db2 "grant connect, bindadd, createtab, implicit_schema on database to group group_name"
  7. Wiederholen Sie Schritt 4–6 für jede weitere Gruppe, zu der Sie den Benutzer hinzugefügt haben.

  8. Testen Sie den Zugriff des Benutzers, indem Sie als Benutzer eine Verbindung herstellen, eine Tabelle erstellen, Werte in die Tabelle einfügen und Daten aus der Tabelle zurückgeben. Ersetzen Sie im folgenden Beispiel rds_database_aliasusername, und password durch den Namen der Datenbank sowie den Benutzernamen und das Passwort des Benutzers.

    db2 connect to rds_database_alias user username using password db2 "create table t1(c1 int not null)" db2 "insert into t1 values (1),(2),(3),(4)" db2 "select * from t1"

Ändern des Passworts eines Benutzers

So ändern Sie das Passwort eines Benutzers
  1. Stellen Sie mithilfe des Hauptbenutzernamens und Hauptpassworts für Ihre DB-Instance von RDS für Db2 eine Verbindung zur rdsadmin-Datenbank her. Ersetzen Sie im folgenden Beispiel master_username und master_password durch Ihre eigenen Informationen.

    db2 connect to rdsadmin user master_username using master_password
  2. Ändern Sie das Passwort, indem Sie rdsadmin.change_password aufrufen. Weitere Informationen finden Sie unter rdsadmin.change_password.

    db2 "call rdsadmin.change_password( 'username', 'new_password')"

Hinzufügen von Gruppen zu einem Benutzer

So fügen Sie Gruppen zu einem Benutzer hinzu
  1. Stellen Sie mithilfe des Hauptbenutzernamens und Hauptpassworts für Ihre DB-Instance von RDS für Db2 eine Verbindung zur rdsadmin-Datenbank her. Ersetzen Sie im folgenden Beispiel master_username und master_password durch Ihre eigenen Informationen.

    db2 connect to rdsadmin user master_username using master_password
  2. Fügen Sie einem Benutzer Gruppen hinzu, indem Sie rdsadmin.add_groups aufrufen. Weitere Informationen finden Sie unter rdsadmin.add_groups.

    db2 "call rdsadmin.add_groups( 'username', 'group_name,group_name')"

Entfernen von Gruppen von einem Benutzer

So entfernen Sie Gruppen von einem Benutzer
  1. Stellen Sie mithilfe des Hauptbenutzernamens und Hauptpassworts für Ihre DB-Instance von RDS für Db2 eine Verbindung zur rdsadmin-Datenbank her. Ersetzen Sie im folgenden Beispiel master_username und master_password durch Ihre eigenen Informationen.

    db2 connect to rdsadmin user master_username using master_password
  2. Entfernen Sie Gruppen, indem Sie rdsadmin.remove_groups aufrufen. Weitere Informationen finden Sie unter rdsadmin.remove_groups.

    db2 "call rdsadmin.remove_groups( 'username', 'group_name,group_name')"

Entfernen eines Benutzers

So entfernen Sie einen Benutzer aus der Autorisierungsliste
  1. Stellen Sie mithilfe des Hauptbenutzernamens und Hauptpassworts für Ihre DB-Instance von RDS für Db2 eine Verbindung zur rdsadmin-Datenbank her. Ersetzen Sie im folgenden Beispiel master_username und master_password durch Ihre eigenen Informationen.

    db2 connect to rdsadmin user master_username using master_password
  2. Entfernen Sie einen Benutzer aus Ihrer Autorisierungsliste, indem Sie rdsadmin.remove_user aufrufen. Weitere Informationen finden Sie unter rdsadmin.remove_user.

    db2 "call rdsadmin.remove_user('username')"

Auflisten von Benutzern

Rufen Sie die gespeicherte Prozedur rdsadmin.list_users auf, um Benutzer in einer Autorisierungsliste aufzulisten. Weitere Informationen finden Sie unter rdsadmin.list_users.

db2 "call rdsadmin.list_users()"

Erstellen einer Rolle

Sie können die gespeicherte Prozedur rdsadmin.create_role verwenden, um eine Rolle zu erstellen.

So erstellen Sie eine Rolle
  1. Stellen Sie eine Verbindung zur Datenbank rdsadmin her. Ersetzen Sie im folgenden Beispiel master_username und master_password durch Ihre Informationen.

    db2 connect to rdsadmin user master_username using master_password
  2. Stellen Sie Db2 für die Ausgabe von Inhalten ein.

    db2 set serveroutput on
  3. Erstellen Sie eine Rolle. Weitere Informationen finden Sie unter rdsadmin.create_role.

    db2 "call rdsadmin.create_role( 'database_name', 'role_name')"
  4. Stellen Sie Db2 so ein, dass kein Inhalt ausgegeben wird.

    db2 set serveroutput off

Gewähren einer Rolle

Sie können die gespeicherte Prozedur rdsadmin.grant_role verwenden, um einer Rolle, einem Benutzer oder einer Gruppe eine Rolle zuzuweisen.

So weisen Sie eine Rolle zu
  1. Stellen Sie eine Verbindung zur Datenbank rdsadmin her. Ersetzen Sie im folgenden Beispiel master_username und master_password durch Ihre Informationen.

    db2 connect to rdsadmin user master_username using master_password
  2. Stellen Sie Db2 für die Ausgabe von Inhalten ein.

    db2 set serveroutput on
  3. Weisen Sie eine Rolle zu. Weitere Informationen finden Sie unter rdsadmin.grant_role.

    db2 "call rdsadmin.grant_role( 'database_name', 'role_name', 'grantee', 'admin_option')"
  4. Stellen Sie Db2 so ein, dass kein Inhalt ausgegeben wird.

    db2 set serveroutput off

Widerrufen einer Rolle

Sie können die gespeicherte Prozedur rdsadmin.revoke_role verwenden, um eine Rolle für eine Rolle, einen Benutzer oder eine Gruppe zu widerrufen.

So widerrufen Sie eine Rolle
  1. Stellen Sie eine Verbindung zur Datenbank rdsadmin her. Ersetzen Sie im folgenden Beispiel master_username und master_password durch Ihre Informationen.

    db2 connect to rdsadmin user master_username using master_password
  2. Widerrufen Sie eine Rolle. Weitere Informationen finden Sie unter rdsadmin.revoke_role.

    db2 "call rdsadmin.revoke_role( ?, 'database_name', 'role_name', 'grantee')"

Entfernen einer Rolle

Sie können die gespeicherte Prozedur rdsadmin.drop_role verwenden, um eine Rolle zu entfernen.

So entfernen Sie eine Rolle
  1. Stellen Sie eine Verbindung zur Datenbank rdsadmin her. Ersetzen Sie im folgenden Beispiel master_username und master_password durch Ihre Informationen.

    db2 connect to rdsadmin user master_username using master_password
  2. Entfernen Sie eine Rolle. Weitere Informationen finden Sie unter rdsadmin.drop_role.

    db2 "call rdsadmin.drop_role( ?, 'database_name', 'role_name')"

Gewähren einer Datenbankautorisierung

Der Hauptbenutzer, der über eine DBADM-Autorisierung verfügt, kann einer Rolle, einem Benutzer oder einer Gruppe die Berechtigung DBADM, ACCESSCTRL oder DATAACCESS gewähren.

So gewähren Sie eine Datenbankautorisierung
  1. Stellen Sie mithilfe des Hauptbenutzernamens und Hauptpassworts für Ihre DB-Instance von RDS für Db2 eine Verbindung zur rdsadmin-Datenbank her. Ersetzen Sie im folgenden Beispiel master_username und master_password durch Ihre eigenen Informationen.

    db2 connect to rdsadmin user master_username using master_password
  2. Gewähren Sie einem Benutzer Zugriff, indem Sie rdsadmin.dbadm_grant aufrufen. Weitere Informationen finden Sie unter rdsadmin.dbadm_grant.

    db2 "call rdsadmin.dbadm_grant( ?, 'database_name, 'authorization', 'grantee')"

Beispiel für einen Anwendungsfall

Das folgende Verfahren führt Sie durch das Erstellen einer Rolle, das Gewähren der Berechtigung DBADM für die Rolle, das Zuweisen der Rolle zu einem Benutzer und das Gewähren der Rolle für eine Gruppe.

  1. Stellen Sie mithilfe des Hauptbenutzernamens und Hauptpassworts für Ihre DB-Instance von RDS für Db2 eine Verbindung zur rdsadmin-Datenbank her. Ersetzen Sie im folgenden Beispiel master_username und master_password durch Ihre eigenen Informationen.

    db2 connect to rdsadmin user master_username using master_password
  2. Erstellen Sie eine Rolle namens PROD_ROLE für eine Datenbank namens TESTDB. Weitere Informationen finden Sie unter rdsadmin.create_role.

    db2 "call rdsadmin.create_role( 'TESTDB', 'PROD_ROLE')"
  3. Weisen Sie die Rolle dann einem Benutzer namens PROD_USER zu. PROD_USER erhält die Administratorberechtigung zur Zuweisung von Rollen. Weitere Informationen finden Sie unter rdsadmin.grant_role.

    db2 "call rdsadmin.grant_role( ?, 'TESTDB', 'PROD_ROLE', 'USER PROD_USER', 'Y')"
  4. (Optional) Geben Sie zusätzliche Autorisierungen oder Berechtigungen ein. Im folgenden Beispiel wird einer Rolle namens PROD_ROLE die Berechtigung DBADM für die Datenbank FUNDPROD gewährt. Weitere Informationen finden Sie unter rdsadmin.dbadm_grant.

    db2 "call rdsadmin.dbadm_grant( ?, 'FUNDPROD', 'DBADM', 'ROLE PROD_ROLE')"
  5. Beenden Sie Ihre Sitzung.

    db2 terminate
  6. Stellen Sie mithilfe des Hauptbenutzernamens und Hauptpassworts für Ihre DB-Instance von RDS für Db2 eine Verbindung zur TESTDB-Datenbank her. Ersetzen Sie im folgenden Beispiel master_username und master_password durch Ihre eigenen Informationen.

    db2 connect to TESTDB user master_username using master_password
  7. Fügen Sie der Rolle weitere Autorisierungen hinzu.

    db2 "grant connect, implicit_schema on database to role PROD_ROLE"
  8. Gewähren Sie einer Gruppe die Rolle PROD_ROLE.

    db2 "grant role PROD_ROLE to group PRODGRP"

Benutzer, die der Gruppe PRODGRP angehören, können jetzt Aktionen wie das Herstellen einer Verbindung zur Datenbank TESTDB, das Erstellen von Tabellen oder das Erstellen von Schemas ausführen.

Widerrufen der Datenbankautorisierung

Der Hauptbenutzer, der über eine DBADM-Autorisierung verfügt, kann einer Rolle, einem Benutzer oder einer Gruppe die Berechtigung DBADM, ACCESSCTRL oder DATAACCESS entziehen.

So widerrufen Sie die Datenbankautorisierung
  1. Stellen Sie mithilfe des Hauptbenutzernamens und Hauptpassworts für Ihre DB-Instance von RDS für Db2 eine Verbindung zur rdsadmin-Datenbank her. Ersetzen Sie im folgenden Beispiel master_username und master_password durch Ihre eigenen Informationen.

    db2 connect to rdsadmin user master_username using master_password
  2. Widerrufen Sie den Benutzerzugriff, indem Sie rdsadmin.dbadm_revoke aufrufen. Weitere Informationen finden Sie unter rdsadmin.dbadm_revoke.

    db2 "call rdsadmin.dbadm_revoke( ?, 'database_name, 'authorization', 'grantee')"