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 DBA 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.
- - 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).
- - 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 :
- - 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é ;
- - Connect ID (PEOPLE) : Cet utilisateur Oracle est utilisé par le process d'ouverture de session jusqu'à ce que le password soit validé ;
- - PS : ce schéma contient une table qui décrit 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.
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.
[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 :
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.
[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 :
- SQL statements ;
- SQL statement variables ;
- 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.
Connect
=
Primary
/
PREPRD/
people/
2. Détermination du schéma PeopleSoft
Une fois que vous êtes 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.
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.
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 les 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.
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.
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).
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.
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.
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.
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.
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).
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)