IBM PureData System for Analytics, Version 7.1

Maskierung

Die Maskierung ist eine Möglichkeit für einen Client, als anderer Benutzer zu agieren, einschließlich aller Berechtigungen des betreffenden Benutzers. Die Maskierung ist ein leistungsfähiges Feature. Verwenden Sie die Maskierung mit derselben Vorsicht, mit der Sie den root-Befehl unter UNIX oder den su-Befehl unter Linux verwenden würden.

Mit dem Maskierungsfeature können Anwendungsserver die Authentifizierung getrennt von der IBM® Netezza-Appliance ausführen. Außerdem ermöglicht es einem Server, eine Verbindung zum Netezza-System für eine Reihe von Benutzern zu verwenden, während die Benutzer noch im Netezza-System erfasst werden.

In diesem Fall ist die Systemsicherheit so eingerichtet, dass Benutzer nicht direkt auf eine Netezza-Datenbank zugreifen, sondern über eine Anwendung. Die Anwendung erlaubt bestimmten Benutzern den Zugriff auf die Datenbank. Jeder Datenbankbenutzer hat ein zugeordnetes Sicherheitsprofil, das festlegt, auf welche Informationen er zugreifen kann.

Das Netezza-System führt die Benutzerauthentifizierung nicht aus, sondern überlässt dies der Anwendung. Bei der Maskierung verwendet ein Client die Anwendung, um als ein anderer Benutzer (der Zielbenutzer genannt wird) auf die Datenbank zuzugreifen. Er greift also mit dem Sicherheitsprofil des Zielbenutzers auf die Datenbank zu.

Die Maskierung wird über den EXECUTE AS-Befehl ausgeführt. Damit Sie diesen Befehl ausführen können, benötigen Sie EXECUTE AS-Berechtigung für den Zielbenutzer. Wenn Sie den Befehl ohne die erforderliche Berechtigung absetzen, wird eine Fehlernachricht angezeigt.

Verwenden Sie für die Ausführung von EXECUTE AS die folgende Syntax, wobei Zielbenutzername der Name des vorhandenen Benutzers ist, für den Sie über die EXECUTE AS-Berechtigung verfügen:
EXECUTE AS Zielbenutzername

Wie in Steuerung der Benutzeranmeldung erläutert, wird beim Öffnen einer Verbindung zur Datenbank eine Sitzung aufgebaut und der Sitzungsbenutzer wird aufgezeichnet. Die Maskierung ändert den aktuellen Benutzer im Sitzungskontext. Nachfolgende Berechtigungsprüfungen verwenden diesen Wert, während die Sitzungsbenutzerfunktion noch den ursprünglichen Benutzer anzeigt.

Das folgende Befehlsbeispiel beginnt eine Sitzung für den Benutzer John mit dem Kennwort ABCD, der auf die Datenbank BIZ zugreift:
nzsql -u JOHN -pw ABCD -db BIZ
BIZ.SCM(JOHN)=>
John verwendet den EXECUTE AS-Befehl, um sich als Benutzer Hank zu maskieren:
BIZ.SCM(JOHN)=> EXECUTE AS HANK;
EXECUTE AS
Führen Sie die folgenden Befehle aus, um anzuzeigen, wer der Sitzungsbenutzer und wer der aktuelle Benutzer ist:
BIZ(JOHN)=> SELECT session_user, current_user;
 SESSION_USER | CURRENT_USER
--------------+--------------
 JOHN         | HANK
(1 row)

Mit dem REVERT-Befehl können Sie den EXECUTE AS-Befehl aufheben, was dazu führt, dass der aktuelle Benutzer wieder zurückgesetzt wird:

BIZ(JOHN)=> REVERT;
REVERT
BIZ(JOHN)=> SELECT session_user, current_user;
 SESSION_USER | CURRENT_USER
--------------+--------------
 JOHN         | JOHN
(1 row)


Feedback | Copyright IBM Corporation 2014 | Letzte Aktualisierung: 2014-02-28