이전에 사용자를 만들었습니다.

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

하지만

에서 table를 만들려고하면 ORA-01950: no privileges on tablespace "SYSTEM" . 어떤 오류입니까? 왜 발생합니까?


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" 

Oracle Database 11g Express Edition Release 11.2.0.2.0을 사용하고 있습니다.

답변

이 오류는 사용자에게 “테이블 스페이스 SYSTEM에 대한 할당량이 없음을 나타냅니다. 기본 영구 테이블 스페이스로 설정됩니다. 다음과 같은 할당량을 사용자에게 할당 할 수 있습니다.

sql> alter user scott quota 50m on system; 

여기, 50mSYSTEM 테이블 스페이스의 사용자 할당량이 50 메비 바이트임을 의미합니다. 할당량을 unlimited로 설정할 수도 있습니다.

하지만 사용자 및 애플리케이션 데이터를 SYSTEM 테이블 스페이스에 저장하는 것은 좋지 않습니다. 데이터 조각화를 유발하여 성능이 저하되므로 새로운 영구 테이블 스페이스를 생성하는 것이 좋습니다. :

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

그런 다음 사용자가 만든 객체가 해당 기본 테이블 스페이스로 이동하도록 기본 데이터베이스 영구 테이블 스페이스로 설정합니다.

설명

  • 명령에 대해 설명해 주시겠습니까 alter database default tablespace users
  • Oracle XE 11에는 사용자 테이블 스페이스가 이미 존재하므로 alter database default tablespace users;alter user scott quota 50m on system;
  • 만 있으면됩니다.

답변

SYSTEM 테이블 스페이스 액세스, SYSDBA 권한이 필요합니다.

따라서 하나의 새 테이블 스페이스를 생성하고 모든 사용자에게 기본 테이블 스페이스로 할당합니다. 사용자를 만들 때 기본적으로 특정 테이블 스페이스를 할당합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다