I. Introduction



Il existe une différence entre une base de données Oracle et PeopleSoft ce qui peut amener une incompréhension entre les DBA Oracle et les administrateurs PeopleSoft.
Nous allons dans ce document essayer de spécifier au mieux les différences.

II. Terminologie : base de données PeopleSoft et base de données Oracle.



Il arrive souvent que les DBAs aient des incompréhensions lorsqu'on leur parle de base de données PeopleSoft.
Il convient donc de définir exactement le terme base de données PeopleSoft par rapport à base de données Oracle.


  1. - Une base de données PeopleSoft est un groupe de tables, index, vue, etc. qui sont gérés par un schéma d'administration dans une base de données Oracle (ou autre).
  2. - Pour Oracle, une base de données est un groupe de fichiers physiques de données, de fichiers de journaux et de fichiers de contrôles et des processus système.

III. Utilisateurs Oracle



Chaque processus qui effectue une connexion 2/3 à la base de données s'identifie avec un compte utilisateur PeopleSoft (compte technique ou opérateur). Le but de ce procédé d'ouverture de session (signon) est de valider de façon sécurisée que l'opérateur PeopleSoft possède les droits pour accéder à l'application PeopleSoft. Avant de décrire le processus d'ouverture de session, nous allons revoir rapidement les différents comptes Oracle disponibles dans une base de données PeopleSoft. Depuis la version 8, une base de données PeopleSoft ne requiert que trois schémas Oracle :

  1. - Owner ID/Access ID : ce schéma contient la plupart des objets de la base de données et c'est avec cet utilisateur que les process PeopleSoft accèdent à la base de données. Généralement il s'appelle SYSADM mais il peut être changé.
  2. - Connect ID (PEOPLE) : Cet utilisateur Oracle est utilisé par le process d'ouverture de session jusqu'à ce que le password soit validé.
  3. - PS : ce schéma contient une table qui décrits quelles bases PeopleSoft sont installées dans la base de données Oracle.



On retrouve les informations de ces utilisateurs Oracle dans les différents outils de configuration/connexion de PeopleSoft.


Configuration Manager pour la configuration des postes clients.

Configuration Manager pour la configuration des postes clients.



Invite d'ouverture de session pour Application Designer ou Data Mover.

Invite d'ouverture de session pour Application Designer ou Data Mover

Extrait du fichier de configuration de Process Scheduler ou application server (la section " Startup " est la même pour les deux types de domaines.

 
Sélectionnez

[Startup]
;=========================================================================
; Database Signon settings
;=========================================================================
DBName=PREPRD
DBType=ORACLE
UserId=EXPLOIT
UserPswd=7C40AA95830F62FDB88E3BB0AB1D2BDCB88E3BB0AB1D2BDCB88E3BB0AB1D2BDC
ConnectId=people
ConnectPswd=9903A05E7C7CC747
ServerName=



Crypter un mot de passe :

Pour crypter le mot de passe du UserID, il suffit pour ce faire de mettre le mot de passe souhaité en clair et ensuite de lancer psadmin :

 
Sélectionnez

1) Application Server 
1) Administer a domain
DOMAINE
4) Configure this domain

This option will shutdown the domain.
Do you want to continue? (y/n) [n] :y

Enter selection (1-24, h, or q): 12

Removing any existing configuration...
Generating new configuration...
Loading validation table...
Do you want to change any config values (y/n)? [n]:y

Do you want to change any values (y/n)? [n]:y

(...)
Do you want to encrypt this password? [y]:
(...) 



Suivre la procédure jusqu'à la fin ...

IV. Ouverture de session sur un environnement PeopleSoft 8



Pour décrire les étapes d'une ouverture de session sur un environnement PeopleSoft, prenons le cas d'un démarrage de Process Scheduler. La base de données s'appelle PREPRD et les extraits de fichiers présentés ont été obtenus à partir du fichier de traces du Process Scheduler. Pour mettre en place une trace SQL Process Scheduler, il suffit pour ce de modifier la valeur du champ TraceSQL dans le fichier de configuration : psprcs.cfg.

 
Sélectionnez

[Trace]
;=========================================================================
; Trace settings
;=========================================================================

;-------------------------------------------------------------------------
; SQL Tracing Bitfield
;
; Bit       Type of tracing
; ---       ---------------
; 1         - SQL statements
; 2         - SQL statement variables
; 4         - SQL connect, disconnect, commit and rollback
; 8         - Row Fetch (indicates that it occurred, not data)
; 16        - All other API calls except ssb
; 32        - Set Select Buffers (identifies the attributes of columns
;             to be selected).
; 64        - Database API specific calls
; 128       - COBOL statement timings
; 256       - Sybase Bind information
; 512       - Sybase Fetch information
; 1024      - SQL Informational Trace
; Dynamic change allowed for TraceSql and TraceSqlMask
TraceSQL=7



Ici nous souhaitons mettre en trace :

  1. SQL statements
  2. SQL statement variables
  3. SQL connect, disconnect, commit and rollback



La valeur de TraceSQL est égale à 7 (1+2+4).

La trace se récupère dans $PS_HOME/appserv/prcs/DOMAINE/LOGS


1. Création de la connexion initiale

Le Process Scheduler se connecte à la base de données avec le CONNECT ID. Le mot de passe du CONNECT ID (people) n'est pas affiché dans le fichier de trace. Extrait du fichier de trace.

 
Sélectionnez

Connect=Primary/PREPRD/people/



2. Détermination du schéma PeopleSoft

Une fois connecté, la première action du processus de signon est de déterminer quel schéma contient la base de données PeopleSoft. Pour obtenir cette information la table PSDBOWNER est interrogée. Comme expliqué précédemment, la table PSDBOWNER (unique table du schéma PS) contient la liste des bases PeopleSoft contenues dans la base de données Oracle.

Extrait du fichier de trace.

 
Sélectionnez

COM Stmt=SELECT OWNERID FROM PS.PSDBOWNER WHERE DBNAME=:1

Bind-1 type=2 length=6 value=PREPRD



En exécutant la requête sur SQLPlus, on obtient le résultat ci-dessous.

 
Sélectionnez

SQL> SELECT OWNERID FROM PS.PSDBOWNER WHERE DBNAME='PREPRD';

OWNERID
--------
SYSADM

SQL>



3. Contrôle de la release de PeopleSoft

L'étape suivante est de s'assurer que La base à laquelle le process qui se connectent (dans notre cas les process du Process Scheduler) ont la même version de PeopleTools que celle de la base. La release de PeopleSoft est stockée dans la table PSSTATUS, champs TOOLSREL.

Extrait du fichier de trace.

 
Sélectionnez

COM Stmt=SELECT OWNERID, TOOLSREL, TO_CHAR(LASTREFRESHDTTM,'YYYY-MM-DD HH24:MI:SS'), TO_CHAR(LASTCHANGEDTTM,'YYYY-MM-DD HH24:MI:SS') FROM SYSADM.PSSTATUS

COM Stmt=SELECT DBID FROM SYSADM.PSSTATUS



En exécutant la requête sur SQLPlus, on obtient le résultat ci-dessous.

 
Sélectionnez

SQL> SELECT OWNERID, TOOLSREL, TO_CHAR(LASTREFRESHDTTM,'YYYY-MM-DD HH24:MI:SS'), TO_CHAR(LASTCHANGED
TTM,'YYYY-MM-DD HH24:MI:SS') FROM SYSADM.PSSTATUS;

OWNERID  TOOLSREL             TO_CHAR(LASTREFRESH TO_CHAR(LASTCHANGED
-------- -------------------- ------------------- -------------------
SYSADM   8.46                 2006-03-03 15:01:59 2006-03-03 15:01:59

SQL>

Ce test sur la release PeopleSoft n'est pas sensible au niveau de patch des PeopleTools. N'importe quel patch de la release 8.46 (exemple 8.46.06) pourra se connecter à la base de données. PeopleSoft ne change généralement pas la structure des PeopleTools dans les patch releases.

Attention : la version de la servlet du PIA doit être exactement la même que celle des Application Servers. Une servlet 8.46.06 ne pourra pas se connecter à un Application Server 8.46.10. Il en est de même pour les programmes clients Windows, tel Application Designer ou N-Vision en mode 3/3 (pas en 2/3).

Ci-dessous une copie d'écran du message de discordance de versions de PeopleTools (sur une ouverture de session Application Designer). Discordance version PeopleTolls

4. Contrôle du mot de passe de l'opérateur

L'étape suivante consiste à récupérer le mot passe crypté correspondant à l'opérateur qui est stocké dans la table PSOPRDEFN.

Extrait du fichier de trace.

 
Sélectionnez

COM Stmt=SELECT VERSION, OPERPSWD, ENCRYPTED, SYMBOLICID, ACCTLOCK FROM SYSADM.PSOPRDEFN WHERE OPRID = :1

Bind-1 type=2 length=7 value=EXPLOIT



En exécutant la requête sur SQLPlus, on obtient le résultat ci-dessous.

 
Sélectionnez

SQL> SELECT VERSION, OPERPSWD, ENCRYPTED, SYMBOLICID, ACCTLOCK FROM SYSADM.PSOPRDEFN WHERE OPRID = '
EXPLOIT';

   VERSION OPERPSWD                          ENCRYPTED SYMBOLIC   ACCTLOCK
---------- -------------------------------- ---------- -------- ----------
     24545 Mn3EPCRa6kl+wqQnLakbc2vIMog=              1 SYSADM1           0

SQL>



5. Récupération de l'Access ID et de son mot de passe

Le profil d'accès (Access Profil) de l'opérateur obtenu à partir du champ PSOPRDEFN.SYMBOLICID dans l'étape précédente sert à rechercher l'ACCESSID et l'ACCESSPSWD dans la table PSACCESSPRFL tel que c'est présenté ci-dessous.
Extrait du fichier de trace.

 
Sélectionnez

COM Stmt=SELECT ACCESSID, ACCESSPSWD, ENCRYPTED FROM SYSADM.PSACCESSPRFL WHERE SYMBOLICID = :1

Bind-1 type=2 length=7 value=SYSADM1



En exécutant la requête sur SQLPlus, on obtient le résultat ci-dessous.

 
Sélectionnez

SQL> SELECT ACCESSID, ACCESSPSWD, ENCRYPTED FROM SYSADM.PSACCESSPRFL WHERE SYMBOLICID = 'SYSADM1';

ACCESSID         ACCESSPSWD        ENCRYPTED
---------------- ---------------- ----------
06DE6F1A406C9DAC 06DE6F1A406C9DAC          1



6. Reconnexion avec l'Access ID

Le schéma de l'ACCESS ID et son mot de passe ayant été obtenus dans l'étape précédente, le process se déconnecte de la base de données et se reconnecte au schéma spécifié par l'ACCESS ID (dans le cas présenté, il s'agit de SYSADM).

 
Sélectionnez
Disconnect

Connect=Primary/PREPRD/SYSADM/

<i>Extrait du fichier de trace.</i>

V. Présentation et CV



Dans le monde de l’informatique depuis plusieurs années, mes principales compétences concernent l’administration PeopleSoft. Je suis en train de développer une expérience de DBA Oracle et continue à m’intéresser au monde de l’ERP. Mon travail sur différents projets PeopleSoft m’a permis de me rapprocher de certaines fonctionnalités peu expliquées que je documenterais sur ce site. N’hésitez pas à me contacter pour toute remarque.

Mon CV

Michel Jeanbert (micheljeanbert@yahoo.fr)