< Précédent | Suivant >

Connexion à une base de données utilisateur

Une fois que vous avez créé une session, vous pouvez obtenir la liste des bases de données accessibles et vous devez fournir vos données d'identification pour vous connecter à une base de données utilisateur.
Pour protéger vos bases de données contre les utilisateurs non autorisés, vous devez vous connecter à une base de données avant d'accéder à ses enregistrements. Pour les points d'ancrage, cette authentification d'utilisateur est automatiquement gérée par l'application client Rational ClearQuest. Toutefois, les applications externes doivent se connecter au moyen d'un programme, à l'aide de l'objet Session.
Pour déterminer la base de données à laquelle vous devez vous connecter et pour exécuter la connexion, procédez comme suit :
  1. Obtenez la liste des bases de données associées à un référentiel de schémas en appelant la méthode GetAccessibleDatabases de l'objet Session. Cette méthode renvoie une collection d'objets DatabaseDesc dont chacun contient des informations sur une base de données utilisateur unique.
  2. Utilisez les méthodes de l'objet DatabaseDesc pour obtenir des informations spécifiques sur une base de données, telles que le nom d'une base de données ou l'ensemble de bases de données (référentiel de schémas et ses bases de données associées) auquel appartient une base de données.
  3. Connectez-vous à une base de données en appelant la méthode UserLogon de l'objet Session.
La méthode UserLogon contient quatre éléments.
$CQsession->UserLogon(nom_de_connexion, motdepasse, nom_base_de_données, nom_ensemble_bases_de_données); 
Tous les éléments sont des chaînes : For example:
$CQSession->UserLogon("admin", "", "SAMPL", ""); 

Dans l'exemple de code suivant, un utilisateur (admin) obtient le nom des bases de données accessibles et se connecte à une base de données appelée perl2 :
require CQPerlExt; 
$CQsession = CQSession::Build();  

#Start a Rational ClearQuest session 
$sessionObj = CQSession::Build(); 

#Get a list of accessible databases 
$databases = $sessionObj->GetAccessibleDatabases("MASTR", "admin", ""); 
$count = $databases->Count(); 

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

#For each accessible database, 
# get database name and login as joe with password gh36ak3: 
for($x=0;$x<$count;$x++)
   { 
     $db = $databases->Item($x); 
     $dbName = $db->GetDatabaseName(); 
     # Logon to the database 
     $sessionObj->UserLogon( "joe", "gh36ak3", $dbName, "" ); 
     #... 
   } 

# You can also ise the GetSessionDatabase method rather than the GetAccessibleDatabases method
$dbDesc = $sessionObj->GetSessionDatabase();  

# The GetSessionDatabase method returns information about the database that is being accessed 
# in the current session. This method differs from the GetAccessibleDatabases method in that it 
# returns the DatabaseDescription object associated with the current session. You can only call
# this method after the user has logged in to a particular database.


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) 
     {  # Code to handle if no user groups exist 
        print "This user does not belong to any groups\n"; 
     }  
else 
     {  # Print out all groups 
        foreach $groupname (@$userGroups) 
             { print "Group $groupname\n"; }
     }  
CQSession::Unbuild($sessionObj); 

Point de contrôle de la leçon

Maintenant que vous savez utiliser l'API ClearQuest pour créer une session et vous connecter à une base de données, vous pouvez apprendre à mettre en place des cas d'utilisation ClearQuest réels, tels que l'exécution et la création de requêtes, de graphiques et de rapports, et l'affichage, la modification et la création d'enregistrements.
< Précédent | Suivant >

Commentaire