|
Vous créez un utilisateur dans Oracle 10g à l'aide de la commande `CREATE USER`. Voici la syntaxe de base et quelques considérations importantes :
Syntaxe de base :
```sql
CRÉER UN UTILISATEUR nom d'utilisateur IDENTIFIÉ PAR mot de passe ;
```
* `nom d'utilisateur` :Le nom que vous souhaitez donner au nouvel utilisateur. Cela doit suivre les règles d'identification d'Oracle (alphanumérique, jusqu'à 30 caractères, commençant par une lettre).
* `mot de passe` :Le mot de passe du nouvel utilisateur. Oracle a des exigences en matière de complexité des mots de passe ; un mot de passe faible pourrait être rejeté.
Exemple :
```sql
CRÉER UN UTILISATEUR john_doe IDENTIFIÉ PAR MySecurePassword123 ;
```
Accorder des privilèges :
Un utilisateur nouvellement créé n'a aucun privilège. Vous devez leur accorder explicitement les autorisations nécessaires pour accéder aux objets de la base de données. Cela se fait à l'aide de la commande `GRANT`.
Par exemple, pour accorder à l'utilisateur `john_doe` la possibilité de se connecter à la base de données et de créer des tables :
```sql
GRANT CONNECT, RESSOURCE À john_doe ;
```
* `CONNECTER` :Permet à l'utilisateur de se connecter à la base de données.
* `RESSOURCE` :Permet à l'utilisateur de créer des tables, des index, etc. Il s'agit d'un privilège commun aux utilisateurs généraux.
Autres clauses importantes :
* `ESPACE TABLE PAR DÉFAUT` :Spécifie l'espace de table par défaut pour les données de l'utilisateur. S'il est omis, il s'agit par défaut de l'espace de table système (ce qui doit généralement être évité pour les nouveaux utilisateurs).
* `ESPACE TABLE TEMPORAIRE` :Spécifie l'espace table pour les tables temporaires utilisées par l'utilisateur.
* `QUOTA` :définit un quota de stockage (en Mo ou K) pour l'utilisateur dans un espace de table spécifique. Cela évite à l'utilisateur de consommer un espace disque excessif.
* `PROFIL` :Attribue un profil à l'utilisateur, qui peut limiter la consommation des ressources (temps CPU, mémoire, etc.). Les profils sont utiles pour gérer l’utilisation des ressources entre plusieurs utilisateurs.
Exemple avec clauses supplémentaires :
```sql
CRÉER UN UTILISATEUR jane_doe
IDENTIFIÉ PAR AnotherSecurePassword
Utilisateurs de TABLESPACE PAR DÉFAUT
TABLESPACE TEMPORAIRE temp
QUOTA 100M SUR les utilisateurs
PROFIL par défaut ;
```
Cela crée un utilisateur « jane_doe » avec un quota de 100 Mo dans l'espace de table « utilisateurs ». Il utilise le tablespace « users » pour les données et « temp » pour les données temporaires. Il utilise également le profil par défaut.
Considérations de sécurité importantes :
* Mots de passe forts : Utilisez des mots de passe forts et uniques, difficiles à deviner.
* Gestion des mots de passe : Ne codez pas en dur les mots de passe dans les scripts. Pensez à utiliser les outils de gestion des mots de passe d'Oracle ou les mécanismes du système d'exploitation pour stocker et gérer les mots de passe en toute sécurité.
* Principe du moindre privilège : Accordez aux utilisateurs uniquement les privilèges dont ils ont absolument besoin pour effectuer leurs tâches. Évitez d'accorder des privilèges excessifs tels que « DBA », sauf si cela est absolument nécessaire.
* Audits réguliers : Auditez régulièrement les comptes et les privilèges des utilisateurs pour vous assurer qu’ils restent appropriés.
Supprimer un utilisateur :
Pour supprimer un utilisateur (et tous ses objets associés), utilisez la commande `DROP USER` :
```sql
DROP UTILISATEUR john_doe CASCADE ;
```
La clause « CASCADE » est cruciale ; il garantit que tous les objets appartenant à l'utilisateur sont également supprimés. Sans `CASCADE`, le dépôt échouera si l'utilisateur possède des objets.
N'oubliez pas de toujours vous connecter en tant qu'utilisateur avec les privilèges nécessaires (par exemple, « sysdba » ou un utilisateur avec le privilège « CREATE USER ») pour exécuter ces commandes. Sauvegardez toujours votre base de données avant d’apporter des modifications importantes au schéma.
|