< Vorherige Lektion | Nächste Lektion >

Anmeldung an Benutzerdatenbank

Wenn Sie eine Sitzung erstellt haben, können Sie eine Liste der verfügbaren Datenbanken abrufen und müssen Berechtigungsnachweise für die Anmeldung bereitstellen, um sich an einer Benutzerdatenbank anzumelden.
Zum Schutz Ihrer Datenbanken vor nicht berechtigten Benutzern müssen Sie sich an einer Datenbank anmelden, bevor Sie auf die enthaltenen Datensätze zugreifen. Bei Hooks wird diese Benutzerauthentifizierung automatisch von der Clientanwendung von Rational ClearQuest durchgeführt. Externe Anmeldungen müssen sich jedoch unter Verwendung des Sitzungsobjekts über das Programm anmelden.
Führen Sie die folgenden Schritte aus, um zu bestimmen, an welcher Datenbank die Anmeldung erfolgen soll, und die Anmeldung durchzuführen:
  1. Rufen Sie eine Liste der einem Schema-Repository zugeordneten Datenbanken ab, indem Sie die Methode GetAccessibleDatabases des Sitzungsobjekts aufrufen. Diese Methode gibt eine Sammlung von DatabaseDesc-Objekten zurück, wobei jedes Objekt Informationen zu einer Benutzerdatenbank enthält.
  2. Verwenden Sie die Methoden des DatabaseDesc-Objekts, um bestimmte Datenbankinformationen wie den Namen der Datenbank oder die Datenbankgruppe (Schema-Repository und zugeordnete Datenbanken) abzurufen, zu der eine Datenbank gehört.
  3. Melden Sie sich an der Datenbank an, indem Sie die Methode UserLogon des Sitzungsobjekts aufrufen.
Die Methode UserLogon verwendet vier Argumente.
$CQsession->UserLogon(Anmeldename, Kennwort, Datenbankname, Name_der_Datenbankgruppe); 
Alle Argumente sind Zeichenfolgen: Beispiel:
$CQSession->UserLogon("admin", "", "SAMPL", ""); 

Im folgenden Codebeispiel ruft ein Benutzer (admin) die verfügbaren Datenbanken ab und meldet sich an der Datenbank perl2 an:
require CQPerlExt; 
$CQsession = CQSession::Build();  

#Rational-ClearQuest-Sitzung starten
$sessionObj = CQSession::Build(); 

#Liste der verfügbaren Datenbanken abrufen
$databases = $sessionObj->GetAccessibleDatabases("MASTR", "admin", ""); 
$count = $databases->Count(); 

$sessionObj->UserLogon("admin", "", "perl2", "");  

#Für jede verfügbare Datenbank den Datenbanknamen abrufen
#und Anmeldung als "joe" mit Kennwort "gh36ak3" durchführen:
for($x=0;$x<$count;$x++)
   { 
     $db = $databases->Item($x); 
     $dbName = $db->GetDatabaseName(); 
     # Logon to the database 
     $sessionObj->UserLogon( "joe", "gh36ak3", $dbName, "" ); 
     #... 
   } 

# Sie können auch die Methode "GetSessionDatabase" anstelle der Methode "GetAccessibleDatabases" verwenden
$dbDesc = $sessionObj->GetSessionDatabase();  

# Die Methode "GetSessionDatabase" gibt Informationen zur Datenbank zurück, auf die in der aktuellen
# Sitzung zugegriffen wird. Diese Methode unterscheidet sich von der Methode "GetAccessibleDatabases"
# darin, dass sie das der aktuellen Sitzung zugeordnete DatabaseDescription-Objekt zurückgibt. Sie
# können diese Methode nur aufrufen, nachdem der Benutzer sich an einer bestimmten Datenbank angemeldet hat.
print "DB name = ", $dbDesc->GetDatabaseName(), "\n";  
print "DB set name = ", $dbDesc->GetDatabaseSetName(), "\n";  
print "DB connect string = ", $dbDesc->GetDatabaseConnectString(), "\n";  
print "User login name = ", $sessionObj->GetUserLoginName(), "\n";  
print "User full name = ", $sessionObj->GetUserFullName(), "\n";  
print "User email = ", $sessionObj->GetUserEmail(), "\n";  
print "User phone = ", $sessionObj->GetUserPhone(), "\n";  
print "Misc user info = ", $sessionObj->GetUserMiscInfo(), "\n";  
print "User groups: \n";  
$userGroups = $sessionObj->GetUserGroups();  
if (!@$userGroups) 
     {  # Zu verarbeitender Code bei Nichtvorhandensein von Benutzergruppen
        print "This user does not belong to any groups\n"; 
     }  
else 
     {  # Alle Gruppen ausgeben
        foreach $groupname (@$userGroups) 
             { print "Group $groupname\n"; }
     }  
CQSession::Unbuild($sessionObj); 

Lektionsprüfpunkt

Sie haben gelernt, wie Sie die ClearQuest-API verwenden müssen, um eine Sitzung abzurufen und sich an einer Datenbank anzumelden. Jetzt können Sie sich damit befassen, tatsächliche Anwendungsfälle der Clientkomponente von ClearQuest auszuführen, z. B. die Ausführung und Erstellung von Abfragen, Diagrammen und Berichten und das Anzeigen, Ändern und Erstellen von Datensätzen.

Feedback