Connexion aux bases de données pédagogiques Oracle

Informations de connexion

Identifiants de connexion

  • Etudiants: Si vous avez besoin d'accéder à la base Oracle pour un TP, l'équipe enseignante vous fournira un identifiant de connexion (login) et un mot de passe1). Votre identifiant sera parfois indiqué dans tomuss.
  • Enseignants: Demander un compte à Emmanuel Coquery ou Nicolas Lumineau.

Serveur

Le serveur Oracle fonctionne sur oracle710.univ-lyon1.fr, le numéro de port pour les requêtes SQL est le 1521. Il y a 3 bases de données2) qui fonctionnent sur ce serveur: orapeda1, orapeda2 et orapeda3. Le nom d'une base est appelé SID dans le vocabulaire Oracle.

Comment se connecter à la base

Via SQLDeveloper

Créer une nouvelle connexion en utilisant le bouton “+” vert. Le nom de connexion est libre; le nom d'utilisateur est votre identifiant de connexion Oracle; le nom d'hôte est oracle710.univ-lyon1.fr3); SID est le nom de la base (ex: orapeda1):

Configuration SQLDeveloper

Une fois la connexion créée il suffit de double-cliquer dessus pour ouvrir un éditeur qui permettra d'exécuter les requêtes.

Via SQLPlus

Dans les salles de TP, l'application SQLPlus est préconfigurée. Il suffit de préciser le login, le mot de passe et le nom de la base de données.

Via JDBC dans un programme Java

Pour pouvoir se connecter, votre projet doit inclure le pilote JDBC Oracle (ojdbc14.jar, ojdbc5.jar ou ojdbc6.jar). Exemple de code de connexion:

        OracleDataSource ods = new OracleDataSource();
 
        // type de pilote oracle
        ods.setDriverType("thin"); 
 
        // nom de la machine sur laquelle se trouve la base
        ods.setServerName("oracle710.univ-lyon1.fr"); 
 
        // numero du port pour se connecter à la base
        ods.setPortNumber(1521);
 
        // nom de la base
        ods.setDatabaseName("orapeda1");
 
        // Pour ouvrir une session (représentée par l'objet connect
        Connection connect = ods.getConnection("votrelogin","votremotdepasse");
 
        // Travail sur la base
        // Ici, on écrira du code pour, par exemple, interroger la base
 
        // Ne pas oublier de fermer la session quand on a fini de manipuler la base
        connect.close();

On peut également utiliser un fichier de propriétés Java. Le code devient alors:

        OracleDataSource ods = new OracleDataSource();
 
        // type de pilote oracle
        ods.setDriverType("thin"); 
 
        // Chargement des paramètres de connexion depuis le fichier
        Properties cp = new Properties();
        cp.load(new FileReader("/mon/chemin/mon_fichier.properties"));
        ods.setConnectionProperties(cp);
 
        // Pour ouvrir une session (représentée par l'objet connect
        Connection connect = ods.getConnection();
 
        // Travail sur la base
        // Ici, on écrira du code pour, par exemple, interroger la base
 
        // Ne pas oublier de fermer la session quand on a fini de manipuler la base
        connect.close();

Le fichier /mon/chemin/mon_fichier.properties ressemblant à:

user=votrelogin
password=votremotdepasse
server=oracle710.univ-lyon1.fr:1521:orapeda1

Accès depuis l'extérieur de l'université

L'accès direct au serveur Oracle depuis l'extérieur du réseau de l'UCBL est impossible. L'accès direct est également impossible depuis les réseaux UCBL-Portail et eduspot, mais possible depuis le réseau eduroam. Pour se connecter depuis l'extérieur il est nécessaire d'utiliser un tunnel SSH. Voir l'aide sur les tunnels SSH.

Reconfiguration

Il suffit de remplacer oracle710.univ-lyon1.fr par localhost dans la configuration du client. Si vous utilisez SQLPlus4), il peut être nécessaire de changer le fichier TNSNAMES.ORA.

Problèmes de connexion

  1. Vérifier que vous utilisez votre login unix/UCBL dans Putty et votre login Oracle (e.g. fourni dans tomuss) dans SQLDeveloper.

Si vous avez installé Oracle eXpress Edition, le TNSListener (Service Windows: OracleXETNSListener) occupe le port 1521 sur votre machine, il faut l'arrêter avant de lancer Putty.

Supprimer toutes les tables de son compte

Cette opération est définitive, à utiliser seulement si besoin

Pour supprimer toutes les table de son compte, on peut utiliser le bloc PL/SQL suivant:

BEGIN
FOR t IN (SELECT * FROM USER_TABLES) LOOP
  EXECUTE IMMEDIATE 'DROP TABLE '||t.table_name||' CASCADE CONSTRAINTS';
END LOOP;
END;
/
1)
en général, le mot de passe est l'identifiant sont identiques à la création
2)
en fait 3 instances
3)
sauf dans le cas d'un accès depuis l'extérieur de l'UCBL
4)
non recommandé sur une machine personnelle