Anteriormente creé un usuario:

SQL>create user suhail identified by password SQL>User created. SQL>Grant create session,create table to suhail; SQL>Grant Succeeded. 

pero cuando inicio sesión como suhail e intento crear un table Aparece un error que dice ORA-01950: no privileges on tablespace "SYSTEM" . ¿Qué error es? ¿Por qué ocurre?


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" 

Estoy usando Oracle Database 11g Express Edition Release 11.2.0.2.0

Respuesta

Este error dice que el usuario no tiene cuota en el espacio de tabla SYSTEM que se establece como el espacio de tabla persistente predeterminado. Puede asignar a un usuario la cuota de esta manera:

sql> alter user scott quota 50m on system; 

Aquí, 50m significa que la cuota de usuario en el SYSTEM espacio de tabla es 50 mebibytes. También puede establecer la cuota en unlimited.

Sin embargo, es una mala práctica almacenar los datos del usuario y de la aplicación en SYSTEM tablespace, ya que provoca la fragmentación de datos y, por lo tanto, degrada el rendimiento. Por lo tanto, le recomendaría crear un nuevo tablespace permanente. :

sql> create smallfile tablespace users datafile "/u01/app/oracle/oradata/ORCL/users.dbf" size 10g; 

Y luego configúrelo como el espacio de tabla permanente predeterminado de la base de datos para que los objetos creados por los usuarios entren en ese espacio de tabla predeterminado:

Comentarios

  • ¿puede explicar el comando alter database default tablespace users
  • En Oracle XE 11, el espacio de tabla de los usuarios ya existe, por lo que solo necesita alter database default tablespace users; y alter user scott quota 50m on system;

Respuesta

Tienes que crear un nuevo espacio de tabla en la base de datos porque para SYSTEM acceso al espacio de tabla, SYSDBA se requieren privilegios.

Por lo tanto, cree un nuevo espacio de tabla y asígnelo como el espacio de tabla predeterminado para todos los usuarios. Cuando crea cualquier usuario, de forma predeterminada le asignará un espacio de tabla particular.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *