Wenn die Installationsfunktion für verteilte Verknüpfungen (Distributed Join) installiert ist und wenn die Konfigurationsvariable federated für den Datenbankmanager auf YES gesetzt ist, wird das DB2-System als System zusammengeschlossener Datenbanken betrieben. Die Einstellungen zur Datenbankauthentifizierung unterscheiden sich in einem System zusammengeschlossener Datenbanken geringfügig von Standarddefinitionen in DB2. Wichtig ist jedoch, daß Sie in einem System zusammengeschlossener Datenbanken die Authentifizierungsanforderungen für die Datenquellen berücksichtigen müssen. Allgemein werden Datenquellen (DB2, Oracle, DB2 für OS/390 usw.) so definiert, daß für sie eine Authentifizierung erforderlich ist. Dies bedeutet, daß Sie sicherstellen müssen, daß die IDs und Kennwörter, falls erforderlich, an die Datenquellen gesendet werden können. DB2 bietet mehrere Möglichkeiten zur Authentifizierung bei den Datenquellen. Diese werden im folgenden Abschnitt erläutert.
Gehen Sie sehr sorgfältig vor, wenn Sie die Authentifizierung CLIENT verwenden. Ziehen Sie diese Authentifizierungsart nur für sichere Netzwerke in Betracht. Ein Benutzer besitzt unter den folgenden Bedingungen die Berechtigung SYSADM für eine zusammengeschlossene Datenbank:
Seien Sie vorsichtig mit der Einstellung DCS für die Authentifizierung. Weder beim Client noch in DB2 findet eine Authentifizierung statt. Alle Benutzer, die den Authentifizierungsnamen SYSADM kennen, können die Berechtigung SYSADM für den Server einer zusammengeschlossenen Datenbank erhalten.
Es sind weitere DB2-Authentifizierungseinstellungen möglich, bei denen einige in DB2 ein Kennwort zur Übertragung an die Datenquellen verfügbar machen. Wenn die Einstellungen von DB2 und der Client-Authentifizierung die Übertragung eines Kennworts an DB2 bewirken, ist dieses Kennwort für eine weitere Authentifizierungsverarbeitung an den Datenquellen verfügbar. Weitere Informationen finden Sie in Tabelle 25.
Zur Steuerung der Übertragung von Authentifizierungsdaten an Datenquellen gibt es die folgenden Methoden: DB2-Authentifizierungseinstellungen, Benutzerzuordnungen, Server-Optionen und APPC-Sicherheitseinstellungen. Diese werden im folgenden erläutert.
In diesem Abschnitt wird erläutert, wie sich Authentifizierungseinstellungen auf die globale Authentifizierungsverarbeitung innerhalb eines Systems zusammengeschlossener Datenbanken auswirkt. Weitere Informationen zu den Definitionen für Authentifizierungseinstellungen finden Sie im vorhergehenden Abschnitt Authentifizierungseinstellungen. Wenn z. B. die DB2-Authentifizierung auf SERVER oder DCS gesetzt ist, sind zur Herstellung einer Verbindung eine Benutzer-ID und ein Kennwort erforderlich. Deshalb ist eine Benutzer-ID und ein Kennwort zur Übertragung an die Datenquellen verfügbar. Wenn die Authentifizierung auf DCE oder CLIENT gesetzt ist und auf dem DB2-System keine Authentifizierung erfolgt, ist zur Übertragung an die Datenquellen nur eine Benutzer-ID verfügbar. Wenn die Authentifizierungsverarbeitung an der Datenquelle ein Kennwort oder möglicherweise eine andere Benutzer-ID oder ein anderes Kennwort erfordert, müssen Sie eine Benutzerzuordnung erstellen. Wenn die Authentifizierung auf CLIENT und der Parameter trust_clntauth auf SERVER gesetzt ist, ist es möglich, daß ein Kennwort an DB2 gesendet wird und dieses zur Übertragung an Datenquellen verfügbar ist.
DB2 kann entweder den Berechtigungsnamen, der zur Herstellung der Verbindung mit DB2 verwendet wird, oder einen Berechtigungsnamen, der in DB2 definiert ist, senden. In Benutzerzuordnungen werden die Berechtigungsnamen gespeichert, die in DB2 definiert sind. Diese werden mit der Anweisung CREATE USER MAPPING erstellt.
Benutzerzuordnungen sind flexibel: Sie können eine ID einer neuen ID und einem Kennwort oder nur einem Kennwort zuordnen. Sie können damit fehlende Daten angeben oder IDs und Kennwörter so ändern, daß die Daten von der Datenquelle angenommen werden.
Wenn Sie eine Benutzerzuordnung erstellen oder ändern wollen, müssen Sie die Berechtigung SYSADM oder DBADM besitzen, oder Ihre Authentifizierungs-ID muß dem Berechtigungsnamen entsprechen, der für die Anweisung angegeben wurde.
Mit der folgenden Anweisung können Sie z. B. eine Benutzerzuordnung erstellen:
CREATE USER MAPPING FOR "SHAWN" SERVER DB21 OPTIONS (REMOTE_AUTHID "SHAWNBCA", REMOTE_PASSWORD "MAPLELEAF")
Dabei gilt folgendes: Eine DB2-Authentifizierungs-ID (SHAWN) wird der fernen ID SHAWNBCA und dem fernen Kennwort MAPLELEAF für einen Server mit dem Namen DB21 zugeordnet.
Wenn der einzige Unterschied zwischen dem Berechtigungsnamen (oder dem Kennwort) in DB2 und dem Berechtigungsnamen (oder dem Kennwort) an der Datenquelle in der Groß-/Kleinschreibung der übergebenen Zeichenfolge besteht, können Sie bei Bedarf mit Hilfe von Server-Optionen die Groß-/Kleinschreibung in die gewünschte Schreibung umwandeln, statt neue IDs und Kennwörter zu erstellen. Weitere Informationen finden Sie in Server-Optionen.
Wenn die Authentifizierungseinstellung DCE lautet und für eine Datenquelle die Authentifizierungsverarbeitung erforderlich ist (wenn ein Kennwort erwartet wird), müssen Sie eine Benutzerzuordnung erstellen. DB2 übergibt nur die DCE-Benutzer-ID an Datenquellen. Dieser Benutzer-ID muß ein Kennwort zugeordnet werden, das anschließend an die Datenquelle gesendet wird.
Mit Server-Optionen kann die Authentifizierung global unterstützt werden. Damit können Sie angeben, ob Kennwörter an die Datenquellen übergeben werden (typischerweise ja) und ob Benutzer-IDs und Kennwörter in Großschreibung oder Kleinschreibung umgewandelt werden müssen. Die Server-Optionen werden mit den Anweisungen CREATE SERVER, ALTER SERVER und SET SERVER OPTION eingestellt.
Weitere Informationen zu Server-Optionen, die die Authentifizierungsverarbeitung betreffen, werden im folgenden Abschnitt erläutert. Eine vollständigere Liste der Server-Optionen finden Sie in Vereinfachen der Datenquellendefinitionen und der Authentifizierungsverarbeitung durch Server-Optionen.
Der Standardwert für password ist Y. Damit werden Kennwörter an Datenquellen gesendet. In allen Fällen, in denen eine Datenquelle eine Authentifizierung ausführt und kein verschlüsseltes Kennwort erwartet, können Sie den Wert Y für diesen Parameter beibehalten oder festlegen.
DB2 kann verschlüsselte Kennwörter übertragen. Wenn die Kennwörter in verschlüsselter Form an Datenquellen der DB2-Produktfamilie gesendet werden sollen können Sie die Server-Option password auf ENCRYPTION setzen. Wenn die Authentifizierungseinstellung in DB2 DCS_ENCRYPT oder SERVER_ENCRYPT lautet, sollten Sie password auf ENCRYPTION setzen.
Eine Benutzer-ID wird immer an die Datenquellen gesendet.
Die Berechtigungsnamen und die Kennwörter müssen in bestimmten Fällen geändert werden. Unterschiedliche Datenquellen können hinsichtlich der Groß-/Kleinschreibung unterschiedliche Berechtigungsnamen und Kennwörter erfordern.
Für DB2 gibt es zwei Server-Optionen, mit denen Namensunterschiede aufgelöst werden können. Diese Parameter heißen fold_id und fold_pw und können wie folgt eingestellt werden:
Die Einstellung null mag nützlich erscheinen, da mit ihr viele Möglichkeiten abgedeckt werden. Unter dem Gesichtspunkt der Leistung ist es jedoch am besten, diese Parameter so einzustellen, daß die Herstellung einer Verbindung nur einmal versucht wird. Wenn sowohl der Parameter fold_id als auch fold_pw auf null eingestellt sind, versucht DB2 möglicherweise viermal, den Berechtigungsnamen und das Kennwort zu senden:
Wenn Sie mit einer DRDA-Datenquelle über APPC eine Verbindung herstellen, für die eine Benutzer-ID und ein Kennwort erforderlich ist, oder wenn die Authentifizierungseinstellung DCS lautet und an einer DRDA-Datenquelle authentifiziert wird, muß die APPC-Sicherheitseinstellung für die Verbindung zwischen DB2 und dieser Datenquelle auf PROGRAM gesetzt sein.
In diesem Abschnitt erhalten Sie eine Übersicht über die Authentifizierung und die Berechtigungsschritte für ein System zusammengeschlossener Datenbanken. Eine Übersicht über die Datenbankauthentifizierung und die Berechtigungsverarbeitung ist in der Abbildung 48 dargestellt.
In diesem Szenario stellt sich die Aufgabe, dem Benutzer DJINSTL eine UNION-Operation mit den zwei Kurznamen NN1 und NN2 zu ermöglichen. Die Kurznamen stellen zwei Tabellen dar. Die eine Datenquelle ist ein DB2 für OS/390-System, in dem DJINSTL eine andere Benutzer-ID und ein anderes Kennwort besitzt (siehe Abbildung 48), und trägt den Namen MVS1. Zum Zugriff auf die Datenquelle MVS1 ist eine Benutzerzuordnung erforderlich. Die andere Datenquelle ist ein DB2-System, auf dem die ID und das Kennwort von DJINSTL gleich sind. Diese Datenquelle, die den Namen DB21 trägt, erfordert lediglich, daß die Benutzer-ID und das Kennwort in Großbuchstaben gesendet werden.
Die DB2-Authentifizierung ist auf SERVER gesetzt. DJINSTL greift von einem Windows NT-Client über eine TCP/IP-Verbindung auf DB2 zu. Die Verbindung von DB2 zu DB2 für OS/390 wird ebenfalls mit TCP/IP hergestellt. Der Name der zusammengeschlossenen Datenbank lautet DJDB1.
Zuerst müssen Sie sicherstellen, daß DB2 ein Kennwort erwartet und daß ein Kennwort gesendet wird. Stellen Sie außerdem sicher, daß die Authentifizierungsarten für den Client und den Server übereinstimmen. Sie können die Authentifizierungsart des DB2-Servers überprüfen, indem Sie den folgenden Befehl absetzen:
GET DATABASE MANAGER CONFIGURATION
Diesen Befehl müssen Sie vom DB2-Server aus ausführen. Sie können die Authentifizierungsart des Clients überprüfen, indem Sie den folgenden Befehl absetzen:
LIST DATABASE DIRECTORY
Diesen Befehl müssen Sie vom Client aus ausführen. In beiden Fällen ist die Authentifizierung auf SERVER gesetzt. Wenn die Einstellung Client DCS oder CLIENT lautet, können Sie diese mit den Befehlen UNCATALOG DATABASE und CATALOG DATABASE ändern.
Danach müssen Sie sicherstellen, daß die Kennwörter an die Datenquellen gesendet werden. Nach dem Herstellen der Verbindung mit der zusammengeschlossenen Datenbank DJDB1 können Sie die folgenden Befehle absetzen:
ALTER SERVER MVS1 OPTIONS (SET <kennwort> 'Y') ALTER SERVER DB21 OPTIONS (SET <kennwort> 'Y')
Stellen Sie anschließend sicher, daß die Kennwörter in der richtigen Groß-/Kleinschreibung an die Datenquelle DB21 gesendet werden:
ALTER SERVER DB21 OPTIONS (ADD fold_id 'U') ALTER SERVER DB21 OPTIONS (ADD fold_pw 'U')
Im nächsten Schritt erteilen Sie Zugriffsrechte, mit denen der Benutzer DJINSTL auf die zusammengeschlossene Datenbank DJDB1 zugreifen kann, und wählen Kurznamen aus:
GRANT CONNECT ON DATABASE DJDB1 TO DJINSTL;
Nun ordnen Sie die DB2-ID und das DB2-Kennwort von DJINSTL der richtigen Benutzer-ID und dem richtigen Kennwort für den MVS1-Server zu:
CREATE USER MAPPING FOR "DJINSTL" SERVER MVS1 OPTIONS (REMOTE_AUTHID "SHAWN", REMOTE_PASSWORD "MVS4YOU")
An dieser Stelle kann der DB2-Benutzer mit der Benutzer-ID DJINSTL Anforderungen an die Datenquellen senden. Möglicherweise sind weitere Schritte erforderlich, um auf Datenquellenobjekte zuzugreifen, auf die mit Kurznamen verwiesen wird. (Für Tabellen und Sichten, auf die mit Kurznamen verwiesen wird, sind normalerweise Zugriffsrechte erforderlich.)