CREATE USER Oracle : créer un utilisateur SQL facilement

Apprenez à utiliser CREATE USER dans Oracle SQL : syntaxe complète, exemples pratiques, erreurs courantes et bonnes pratiques pour gérer vos utilisateurs.

Illustration du tutoriel SQL Oracle : CREATE USER Oracle : créer un utilisateur SQL facilement

Publicité

🧪 Envie de pratiquer ? Exécutez les exemples de cet article dans notre SQL Playground gratuit — aucun logiciel à installer.

CREATE USER Oracle : comment créer un utilisateur SQL

La commande CREATE USER Oracle est l’instruction SQL fondamentale permettant de créer un compte utilisateur dans une base de données Oracle. Indispensable pour tout administrateur de base de données (DBA), elle permet de contrôler les accès, de sécuriser les données et de gérer les ressources système. Maîtriser CREATE USER Oracle est une compétence essentielle dans tout environnement professionnel utilisant Oracle Database.

Définition et utilisation de CREATE USER dans Oracle

La commande CREATE USER est une instruction DDL (Data Definition Language) d’Oracle SQL qui permet de créer un nouveau compte utilisateur dans une instance Oracle Database. Un utilisateur Oracle est une entité qui peut se connecter à la base de données, posséder des objets (tables, vues, procédures…) et disposer de privilèges spécifiques.

Cas d’usage en entreprise

Dans un contexte professionnel, CREATE USER est utilisé dans de nombreuses situations :

  • Création de comptes applicatifs : chaque application métier (ERP, CRM, etc.) dispose généralement de son propre utilisateur dédié afin d’isoler les accès aux données.
  • Gestion des développeurs : les équipes de développement reçoivent des comptes distincts pour travailler sur des schémas spécifiques sans risquer d’interférer avec la production.
  • Séparation des responsabilités : un utilisateur peut être limité à certaines tables ou procédures, conformément aux politiques de sécurité interne (principe du moindre privilège).
  • Gestion des espaces disque : il est possible de définir des quotas sur les tablespaces pour éviter qu’un utilisateur ne consomme trop de ressources.

Note importante : La création d’un utilisateur ne lui accorde aucun droit par défaut. Il est nécessaire d’attribuer ensuite des privilèges via les commandes GRANT et ROLE.

Syntaxe complète de CREATE USER Oracle

Voici la syntaxe officielle de la commande CREATE USER dans Oracle Database :

CREATE USER nom_utilisateur
  IDENTIFIED { BY mot_de_passe
             | EXTERNALLY [ AS 'nom_externe' ]
             | GLOBALLY [ AS 'nom_global' ] }
  [ DEFAULT TABLESPACE nom_tablespace ]
  [ TEMPORARY TABLESPACE nom_tablespace_temp ]
  [ QUOTA { taille [ K | M | G ] | UNLIMITED } ON nom_tablespace ]
  [ PROFILE nom_profil ]
  [ PASSWORD EXPIRE ]
  [ ACCOUNT { LOCK | UNLOCK } ];

Explication des paramètres essentiels

ParamètreDescriptionObligatoire
nom_utilisateurNom unique du compte utilisateur Oracle (max 128 caractères)Oui
IDENTIFIED BYDéfinit le mot de passe de connexion local à la baseOui
IDENTIFIED EXTERNALLYAuthentification via le système d’exploitationNon
IDENTIFIED GLOBALLYAuthentification via Oracle Internet Directory (LDAP)Non
DEFAULT TABLESPACETablespace par défaut pour stocker les objets de l’utilisateurNon
TEMPORARY TABLESPACETablespace temporaire utilisé pour les tris et opérations intermédiairesNon
QUOTALimite d’espace allouée à l’utilisateur sur un tablespace donnéNon
PROFILEProfil de ressources et de sécurité appliqué à l’utilisateurNon
PASSWORD EXPIREForce l’utilisateur à changer son mot de passe à la première connexionNon
ACCOUNT LOCK / UNLOCKVerrouille ou déverrouille le compte utilisateurNon

Exemples pratiques de CREATE USER Oracle

Exemple 1 : Création d’un utilisateur applicatif simple

Contexte métier : Un projet de gestion commerciale nécessite la création d’un utilisateur dédié à l’application de vente. Cet utilisateur doit disposer de son propre espace de stockage et être obligé de changer son mot de passe à la première connexion.

-- Création d'un utilisateur pour l'application de vente
CREATE USER app_vente
  IDENTIFIED BY "V3nte$2024"          -- Mot de passe initial sécurisé
  DEFAULT TABLESPACE tbs_donnees      -- Tablespace principal pour ses objets
  TEMPORARY TABLESPACE temp           -- Tablespace pour les opérations temporaires
  QUOTA 500M ON tbs_donnees           -- Limite de 500 Mo sur le tablespace
  PASSWORD EXPIRE                     -- Oblige le changement de mot de passe à la 1ère connexion
  ACCOUNT UNLOCK;                     -- Compte actif dès la création

-- Attribution des privilèges minimaux nécessaires
GRANT CREATE SESSION TO app_vente;   -- Permet la connexion à la base
GRANT CREATE TABLE TO app_vente;     -- Permet la création de tables dans son schéma

Dans cet exemple, l’utilisateur app_vente est créé avec une politique de sécurité stricte. Le quota de 500 Mo évite une consommation excessive du tablespace de données, et le PASSWORD EXPIRE garantit que le mot de passe temporaire sera changé immédiatement.

Exemple 2 : Création d’un utilisateur DBA pour l’environnement de test

Contexte métier : Un développeur senior rejoint l’équipe et doit accéder à l’environnement de test Oracle avec des droits étendus pour valider les migrations de schéma.

-- Création d'un utilisateur développeur avec droits étendus sur l'environnement de test
CREATE USER dev_migration
  IDENTIFIED BY "M!gr@tion99"         -- Mot de passe conforme à la politique de sécurité
  DEFAULT TABLESPACE tbs_test         -- Tablespace dédié à l'environnement de test
  TEMPORARY TABLESPACE temp
  QUOTA UNLIMITED ON tbs_test         -- Aucune limite sur le tablespace de test
  PROFILE profil_developpeur          -- Profil avec règles adaptées aux devs (tentatives, délais)
  ACCOUNT UNLOCK;

-- Attribution d'un rôle avec plusieurs privilèges regroupés
GRANT CONNECT TO dev_migration;       -- Rôle de connexion de base
GRANT RESOURCE TO dev_migration;      -- Rôle permettant la création d'objets
GRANT SELECT ANY TABLE TO dev_migration; -- Lecture sur toutes les tables (env. de test uniquement)

L’utilisation du paramètre PROFILE permet ici d’appliquer un ensemble de règles prédéfinies (nombre maximum de tentatives de connexion, durée de vie du mot de passe, etc.) propres aux développeurs.

Publicité

Erreurs courantes avec CREATE USER Oracle

Erreur ORA-01920 : User name conflicts with another user or role name

Description : Cette erreur survient lorsque vous tentez de créer un utilisateur dont le nom existe déjà dans la base de données Oracle, qu’il s’agisse d’un utilisateur ou d’un rôle portant le même identifiant.

Exemple d’erreur :

-- Tentative de création d'un utilisateur déjà existant
CREATE USER app_vente IDENTIFIED BY "NouveauMdp";
-- ORA-01920: user name 'APP_VENTE' conflicts with another user or role name

Solution : Avant de créer un utilisateur, vérifiez son existence dans la vue DBA_USERS :

-- Vérification de l'existence de l'utilisateur avant création
SELECT username, account_status, created
FROM dba_users
WHERE username = 'APP_VENTE';

-- Si l'utilisateur existe et doit être recréé, supprimez-le d'abord (avec précaution !)
DROP USER app_vente CASCADE;  -- CASCADE supprime également tous les objets du schéma

-- Puis recréez-le avec les nouveaux paramètres
CREATE USER app_vente IDENTIFIED BY "NouveauMdp2024";

Attention : L’option CASCADE de DROP USER est irréversible en production. Effectuez toujours une sauvegarde préalable.

Résumé : points clés de CREATE USER Oracle

Point cléDétail
Type d’instructionDDL (Data Definition Language)
Privilège requisCREATE USER (accordé au rôle DBA par défaut)
AuthentificationPar mot de passe, externe (OS) ou globale (LDAP/OID)
Droits post-créationAucun par défaut — nécessite des GRANT explicites
Gestion de l’espaceParamètre QUOTA pour limiter l’utilisation des tablespaces
Sécurité renforcéePASSWORD EXPIRE et PROFILE pour les politiques de mot de passe
Vue de contrôleDBA_USERS pour consulter les utilisateurs existants

Bonnes pratiques Oracle

  1. Toujours spécifier un DEFAULT TABLESPACE explicite : ne pas laisser Oracle affecter le tablespace SYSTEM par défaut, qui est réservé au dictionnaire de données. Créez des tablespaces dédiés par application ou par environnement.
  2. Appliquer le principe du moindre privilège : n’accordez que les droits strictement nécessaires au compte créé. Évitez d’attribuer les rôles DBA ou SYSDBA à des comptes applicatifs. Utilisez des profils (PROFILE) pour encadrer les politiques de mot de passe et les limites de ressources.

Aller plus loin sur la gestion des utilisateurs Oracle

La création d’un utilisateur Oracle n’est que la première étape d’une gestion complète des accès à votre base de données. Pour approfondir vos connaissances, nous vous recommandons de consulter les sujets suivants :

  • La commande GRANT Oracle : apprenez à accorder des privilèges système et objets à vos utilisateurs pour définir précisément ce qu’ils peuvent faire.
  • La commande DROP USER Oracle : découvrez comment supprimer un utilisateur Oracle en toute sécurité, avec ou sans l’option CASCADE.
  • La commande CREATE ROLE Oracle : maîtrisez la création de rôles pour simplifier la gestion des droits sur de nombreux utilisateurs simultanément.

Sur le même thème

Un nouveau tutoriel SQL par semaine

Nous ne spammons pas ! Consultez notre politique de confidentialité pour plus d’informations.

Publicité

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Publicité