“ORA-01950 : 테이블 스페이스 'SYSTEM'에 대한 권한이 없습니다.”: 어떤 오류입니까?


15

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

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

하지만로 로그인하여을 suhail만들 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 릴리스 11.2.0.2.0을 사용하고 있습니다.

답변:


22

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

sql> alter user scott quota 50m on system;

여기서 테이블 스페이스 50m의 사용자 할당량 SYSTEM은 50MB입니다. 할당량을로 설정할 수도 있습니다 unlimited.

그러나 SYSTEM데이터 조각화를 유발하여 성능을 저하 시키므로 사용자 및 응용 프로그램 데이터를 테이블 스페이스 에 저장하는 것은 좋지 않습니다 . 따라서 새로운 영구 테이블 스페이스를 생성하는 것이 좋습니다.

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

그런 다음 사용자가 작성한 오브젝트가 해당 기본 테이블 스페이스로 이동하도록 기본 데이터베이스 영구 테이블 스페이스로 설정하십시오.

sql> alter database default tablespace users;

명령을 설명해 주시겠습니까alter database default tablespace users
Suhail Gupta

1
Oracle XE 11에는 사용자 테이블 스페이스가 이미 존재하므로 다음 alter database default tablespace users;과 같은 작업 alter user scott quota 50m on system;
Andrew Spencer

2

SYSTEM테이블 스페이스 액세스에는 SYSDBA특권이 필요 하므로 데이터베이스에 하나의 새 테이블 스페이스를 작성 해야합니다.

따라서 하나의 새 테이블 스페이스를 작성하여 모든 사용자에게 기본 테이블 스페이스로 지정하십시오. 사용자를 작성하면 기본적으로 특정 테이블 스페이스를 지정합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.