Aiemmin luonut käyttäjän:

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

mutta kun kirjaudun sisään nimellä suhail ja yritä luoda table Saan virheen sanomalla ORA-01950: no privileges on tablespace "SYSTEM" . Mikä virhe on? Miksi se tapahtuu?


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" 

Käytän Oracle Database 11g Express Edition -versiota 11.2.0.2.0

Vastaus

Tämä virhe kertoo, että käyttäjällä ei ole kiintiötä taulukotilassa SYSTEM joka on asetettu pysyväksi oletustaulukoksi oletustilaksi. Voit määrittää käyttäjälle kiintiön näin:

sql> alter user scott quota 50m on system; 

Täällä, 50m tarkoittaa, että käyttäjän kiintiö SYSTEM -taulukossa on 50 megatavua. Voit myös asettaa kiintiön arvoksi unlimited.

Käyttäjä- ja sovellustietojen tallentaminen SYSTEM -taulukkoihin on kuitenkin huono käytäntö, koska se aiheuttaa tietojen pirstoutumista ja heikentää siten suorituskykyä. Suosittelen, että luot uuden pysyvän taulukotilan :

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

Ja aseta se sitten oletustietokannan pysyväksi taulukkotilaksi, jotta käyttäjien luomat objektit menevät kyseiseen taulukkotilaan:

Kommentit

  • Voitteko selittää komennon alter database default tablespace users
  • Oracle XE 11: ssä käyttäjien taulukotila on jo olemassa, joten sinun tarvitsee vain alter database default tablespace users; ja alter user scott quota 50m on system;

vastaus

Sinun on luotava yksi uusi taulukotila tietokantaan, koska SYSTEM taulukotilan käyttöoikeus, SYSDBA -oikeudet ovat välttämättömiä.

Luo siis yksi uusi taulukotila ja määritä se oletustaulukotilaksi kaikille käyttäjille. Kun luot minkä tahansa käyttäjän, se antaa oletusarvoisesti tietyn taulukotilan.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *