Anteriormente, criei um usuário:

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

mas quando faço login como suhail e tento criar um table Recebo um erro dizendo ORA-01950: no privileges on tablespace "SYSTEM" . Que erro é esse? Por que isso ocorre?


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" 

Estou usando o Oracle Database 11g Express Edition versão 11.2.0.2.0

Resposta

Este erro diz que o usuário não tem cota no espaço de tabela SYSTEM que é definido como o espaço de tabela persistente padrão. Você pode atribuir a cota a um usuário assim:

sql> alter user scott quota 50m on system; 

Aqui, 50m significa que a cota do usuário no espaço de tabela SYSTEM é de 50 mebibytes. Você também pode definir a cota para unlimited.

No entanto, é uma prática ruim armazenar dados de usuários e aplicativos no espaço de tabela SYSTEM, pois isso causa fragmentação de dados e, portanto, degrada o desempenho. Portanto, recomendo que você crie um novo espaço de tabela permanente :

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

E então defina-o como o espaço de tabela permanente do banco de dados padrão para que os objetos criados pelos usuários entrem nesse espaço de tabela padrão:

Comentários

  • você pode explicar o comando alter database default tablespace users
  • No Oracle XE 11, o espaço de tabela de usuários já existe, então você só precisa alter database default tablespace users; e alter user scott quota 50m on system;

Resposta

Você deve criar um novo espaço de tabela no banco de dados porque para SYSTEM acesso ao espaço de tabela, SYSDBA privilégios são necessários.

Portanto, crie um novo espaço de tabela e atribua-o como o espaço de tabela padrão para todos os usuários. Quando você cria qualquer usuário, por padrão, ele atribui um espaço de tabela específico.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *