Dříve jsem vytvořil uživatele:

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

, ale když se přihlásím jako suhail a zkuste vytvořit table zobrazí se chyba s hlášením ORA-01950: no privileges on tablespace "SYSTEM" . Co je to za chybu? Proč k tomu dochází?


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" 

Používám Oracle Database 11g Express Edition Release 11.2.0.2.0

Odpověď

Tato chyba říká, že uživatel nemá v tabulkovém prostoru kvótu SYSTEM který je nastaven jako výchozí trvalý tabulkový prostor. Kvótu můžete uživateli přiřadit takto:

sql> alter user scott quota 50m on system; 

Zde 50m znamená, že kvóta uživatele v tabulkovém prostoru SYSTEM je 50 megabajtů. Kvótu můžete také nastavit na unlimited.

Je však špatnou praxí ukládat data uživatelů a aplikací do tabulkového prostoru SYSTEM, protože to způsobuje fragmentaci dat a tím snižuje výkon. Doporučil bych vám proto vytvořit nový trvalý tabulkový prostor :

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

A poté jej nastavit jako výchozí trvalý tabulkový prostor databáze tak, aby objekty vytvořené uživateli šly do tohoto výchozího tabulkového prostoru:

Komentáře

  • můžete prosím vysvětlit příkaz alter database default tablespace users
  • V systému Oracle XE 11 již tabulkový prostor uživatelů existuje, takže stačí alter database default tablespace users; a alter user scott quota 50m on system;

Odpověď

Musíte vytvořit jeden nový tabulkový prostor do databáze, protože pro SYSTEM přístup do tabulkového prostoru, jsou požadována oprávnění SYSDBA.

Takže vytvořte jeden nový tabulkový prostor a přiřaďte jej jako výchozí tabulkový prostor všem uživatelům. Když vytvoříte libovolného uživatele, ve výchozím nastavení přidělí konkrétní tabulkový prostor.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *