Die Benutzerauthentifizierung kann für Windows NT-Benutzer aufgrund der Art und Weise, in der das Betriebssystem die Authentifizierung durchführt, problematisch sein. Im vorliegenden Abschnitt werden einige Faktoren erläutert, die für die Benutzerauthentifizierung unter DB2 für Windows NT relevant sind:
Im folgenden sind die für die Umgebung geltenden Einschränkungen aufgeführt:
Unter DB2 Universal Database wurde die Funktion zum Authentifizieren von Benutzernamen und Kennwörtern in den DB2-System-Controller integriert. Der Sicherheitsservice wird nur für die Verbindung eines Clients zu einem Server benötigt, für den die Authentifizierungsart CLIENT konfiguriert wurde.
In einer Windows NT-Umgebung kann ein Benutzer entweder auf einem Primär- oder einem Sicherungs-Controller authentifiziert werden. Diese Funktion ist in umfangreichen, verteilten LANs mit einem zentralen Primärdomänen-Controller und einem oder mehreren Sicherungsdomänen-Controllern (BDC = Backup Domain Controller) an allen Standorten sehr wichtig. Die Benutzer können dann auf dem Sicherungsdomänen-Controller ihres Standortes authentifiziert werden. Auf diese Weise ist es nicht erforderlich, einen Aufruf zur Authentifizierung an den Primärdomänen-Controller (PDC) abzusetzen.
Der Vorteil von Sicherungsdomänen-Controllern liegt in diesem Fall in der schnelleren Authentifizierung der Benutzer und der geringeren Auslastung des LANs im Vergleich zu einer Konfiguration ohne Sicherungsdomänen-Controller (BDC).
Unter folgenden Bedingungen ist eine BDC-Authentifizierung möglich:
Wurde die Variable DB2DMNBCKCTLR der Profilregistrierdatenbank nicht gesetzt oder wurde ein Nullwert angegeben, führt DB2 für Windows NT die Authentifizierung auf dem Primärdomänen-Controller aus.
Die einzigen gültigen, deklarierten Einstellungen für DB2DMNBCKCTLR sind "?" oder ein Domänenname.
Wenn für die Variable DB2DMNBCKCTLR der Profilregistrierdatenbank ein Fragezeichen (DB2DMNBCKCTLR=?) angegeben wurde, führt DB2 für Windows NT die Authentifizierung unter folgenden Bedingungen auf dem Sicherungsdomänen-Controller aus:
Unter normalen Bedingungen kann die Einstellung DB2DMNBCKCTLR=? verwendet werden, dies ist jedoch nicht in allen Umgebungen der Fall. Die über die in der Domäne verfügbaren Server bereitgestellten Informationen sind dynamisch und der Computer-Browser muß aktiv sein, um diese Informationen korrekt und auf dem neuesten Stand zu halten. Auf umfangreichen LANs wird der Computer-Browser möglicherweise nicht ausgeführt, so daß die Server-Manager-Informationen eventuell nicht aktuell sind. In diesem Fall gibt es ein zweites Verfahren, mit dem DB2 für Windows NT angewiesen werden kann, die Authentifizierung auf dem Sicherungsdomänen-Controller auszuführen: Setzen Sie DB2DMNBCKCTLR=xxx, wobei xxx für den Windows NT-Domänennamen des DB2-Servers steht. Mit dieser Einstellung wird die Authentifizierung auf dem Sicherungsdomänen-Controller auf der Basis der folgenden Bedingungen ausgeführt:
DB2 für Windows NT unterstützt die folgenden Gruppenarten:
DB2 für Windows NT spezifiziert die lokalen und globalen Gruppen, zu denen der Benutzer gehört, und verwendet hierzu die Sicherheitsdatenbank, in der der Benutzer lokalisiert wurde. DB2 Universal Database stellt eine Überschreibungsfunktion zur Verfügung, durch den die Ausführung der Gruppenspezifizierung auf dem lokalen Windows NT-Server erzwungen wird, auf dem DB2 installiert ist. Hierbei spielt es keine Rolle, wo der Benutzereintrag lokalisiert wurde. Diese Überschreibung kann mit den folgenden Befehlen veranlaßt werden:
db2set -g DB2_GROUP_LOOKUP=local
db2set -i DB2_GROUP_LOOKUP=local
Geben Sie folgendes ein, um alle definierten DB2-Profilvariablen anzuzeigen:
db2set -all
Um unter DB2 für Windows NT mit der Funktion für die Domänensicherheit arbeiten zu können, müssen Sie einer lokalen Gruppe die entsprechenden Berechtigungen und Zugriffsrechte erteilen. Benutzernamen innerhalb der lokalen und globalen Gruppen MÜSSEN in derselben Domäne definiert sein wie die lokale oder globale Gruppe, damit eine korrekte Authentifizierung gewährleistet ist.
Wenn die Variable DB2_GRP_LOOKUP der Profilregistrierdatenbank auf den Wert 'local' gesetzt ist, versucht DB2 den Benutzer nur auf der lokalen Maschine zu finden. Wird der Benutzer auf der lokalen Maschine nicht gefunden oder ist er nicht als Mitglied einer lokalen oder globalen Gruppe definiert, schlägt die Authentifizierung fehl. DB2 versucht nicht, den Benutzer auf einer anderen Maschine in der Domäne oder auf den verfügbaren Domänen-Controllern zu finden.
Wenn die Variable DB2_GRP_LOOKUP der Profilregistrierdatenbank nicht gesetzt wurde, gilt folgendes:
Die folgenden Beispiele erläutern, wie DB2 für Windows NT die Domänensicherheit unterstützen kann. In diesem ersten Beispiel funktioniert die Verbindung problemlos, weil der Benutzername und die lokale Gruppe sich in derselben Domäne befinden. Im zweiten Beispiel schlägt die Verbindung fehl, weil der Benutzername und die lokale oder globale Gruppe sich in unterschiedlichen Domänen befinden.
Beispiel für eine erfolgreiche Verbindung: Die Verbindung im folgenden Szenario funktioniert, weil der Benutzername und die lokale oder globale Gruppe sich in derselben Domäne befinden.
Beachten Sie hierbei, daß der Benutzername und die lokale oder globale
Gruppe nicht in der Domäne definiert sein müssen, in der der Datenbank-Server
ausgeführt wird. Sie müssen sich jedoch in derselben Domäne
befinden.
Tabelle 96. Erfolgreiche Verbindung mit einem Domänen-Controller
Domain1 | Domain2 |
---|---|
Zu Domain2 besteht eine gesicherte Beziehung. |
|
Der DB2-Server wird in dieser Domäne ausgeführt. Die folgenden
DB2-Befehle werden über diese Einheit abgesetzt:
REVOKE CONNECT ON db FROM public GRANT CONNECT ON db TO GROUP grp2 CONNECT TO db USER id2 | |
Die lokale oder globale Domäne wird durchsucht, id2 kann jedoch nicht gefunden werden. Die Funktion für die Domänensicherheit wird durchsucht. | |
Der Benutzername id2 wird in dieser Domäne gefunden. DB2 erhält zusätzliche Informationen zu diesem Benutzernamen (der zu der Gruppe grp2 gehört). | |
Die Verbindung funktioniert, weil der Benutzername und die lokale oder globale Gruppe sich in derselben Domäne befinden. |
Beispiel für eine nicht erfolgreiche Verbindung: Die
Verbindung im folgenden Szenario funktioniert nicht, weil der Benutzername in
einer anderen Domäne definiert ist als die lokale oder globale Gruppe.
Tabelle 97. Nicht erfolgreiche Verbindung mit einem Domänen-Controller
Domain1 | Domain2 |
---|---|
Zu Domain2 besteht eine gesicherte Beziehung. |
|
| |
Domäne 1\grp1 gehört zu grp2. | |
Der DB2-Server wird in dieser Domäne ausgeführt. Die folgenden
DB2-Befehle werden über diese Einheit abgesetzt:
REVOKE CONNECT ON db FROM public GRANT CONNECT ON db TO GROUP grp2 CONNECT TO db USER id2 | |
Die lokale oder globale Gruppe wurde durchsucht und id1 wurde gefunden. DB2 erhält Informationen für diesen Benutzernamen (der Benutzername id1 gehört zu grp1 und grp1 gehört zu Domain2\grp2). | |
Die Gruppe grp2 ist in dieser Domäne definiert. | |
Die Verbindung funktioniert nicht, weil die lokale oder globale Gruppe
sich in Domain2 befindet und der aktuelle Benutzername in Domain1 definiert
ist.
Die Verbindung würde funktionieren, wenn statt dessen der folgende Befehl eingegeben würde: GRANT CONNECT ON db TO GROUP grp1 |