Auparavant, jai créé un utilisateur:
SQL>create user suhail identified by password SQL>User created. SQL>Grant create session,create table to suhail; SQL>Grant Succeeded.
mais lorsque je me connecte en tant que suhail
et essayez de créer un table
Jobtiens une erreur disant ORA-01950: no privileges on tablespace "SYSTEM"
. De quelle erreur sagit-il? Pourquoi cela se produit-il?
SQL> connect suhail Enter password: Connected. SQL> create table suhail_table(name char(10)); create table suhail_table(name char(10)) * ERROR at line 1: ORA-01950: no privileges on tablespace "SYSTEM"
Jutilise Oracle Database 11g Express Edition version 11.2.0.2.0
Réponse
Cette erreur indique que lutilisateur « na pas de quota sur le tablespace SYSTEM
qui est défini comme espace de table persistant par défaut. Vous pouvez attribuer un quota à un utilisateur comme suit:
sql> alter user scott quota 50m on system;
Ici, 50m
signifie que le quota utilisateur sur le tablespace SYSTEM
est de 50 mégaoctets. Vous pouvez également définir le quota sur unlimited
.
Cependant, il est déconseillé de stocker les données des utilisateurs et des applications dans le tablespace SYSTEM
car cela provoque la fragmentation des données et donc dégrade les performances. Je vous recommande donc de créer un nouveau tablespace permanent :
sql> create smallfile tablespace users datafile "/u01/app/oracle/oradata/ORCL/users.dbf" size 10g;
Ensuite, définissez-le comme espace de table permanent de la base de données par défaut afin que les objets créés par les utilisateurs aient accès à cet espace de table par défaut:
Commentaires
Réponse
Vous devez créer un nouveau tablespace dans la base de données car pour le SYSTEM
accès au tablespace, les privilèges SYSDBA
sont requis.
Alors, créez un nouveau tablespace et attribuez-le comme tablespace par défaut à tous les utilisateurs. Lorsque vous créez un utilisateur, il attribuera par défaut un espace de table particulier.
alter database default tablespace users
alter database default tablespace users;
etalter user scott quota 50m on system;