ORA-01950: không có đặc quyền trên không gian bảng 'HỆ THỐNG' Lỗi: Lỗi gì?


15

Trước đó tôi đã tạo một người dùng:

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

nhưng khi tôi đăng nhập suhailvà cố gắng tạo, tabletôi gặp lỗi ORA-01950: no privileges on tablespace 'SYSTEM'. Lỗi gì vậy? Tại sao nó xảy ra?


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'

Tôi đang sử dụng Oracle Database 11g Express Edition Phiên bản 11.2.0.2.0

Câu trả lời:


22

Lỗi này nói rằng người dùng không có hạn ngạch trên không gian bảng SYSTEMđược đặt làm không gian bảng liên tục mặc định. Bạn có thể chỉ định cho người dùng hạn ngạch như thế này:

sql> alter user scott quota 50m on system;

Ở đây, 50mcó nghĩa là hạn ngạch người dùng trên SYSTEMkhông gian bảng là 50 mebibytes. Bạn cũng có thể đặt hạn ngạch thành unlimited.

Tuy nhiên, việc lưu trữ dữ liệu người dùng và ứng dụng trong SYSTEMkhông gian bảng là một thực tế tồi vì nó gây ra sự phân mảnh dữ liệu và do đó làm giảm hiệu suất. Vì vậy, tôi khuyên bạn nên tạo một không gian bảng vĩnh viễn mới:

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

Và sau đó đặt nó làm không gian bảng cơ sở dữ liệu mặc định để các đối tượng được tạo bởi người dùng đi vào không gian bảng mặc định đó:

sql> alter database default tablespace users;

bạn có thể vui lòng giải thích lệnhalter database default tablespace users
Suhail Gupta

1
Trên Oracle XE 11, không gian bảng người dùng đã tồn tại, vì vậy bạn chỉ cần alter database default tablespace users;alter user scott quota 50m on system;
Andrew Spencer

2

Bạn phải tạo một không gian bảng mới vào cơ sở dữ liệu vì để SYSTEMtruy cập không gian bảng, SYSDBAcần có đặc quyền.

Vì vậy, hãy tạo một không gian bảng mới và gán nó làm không gian bảng mặc định cho tất cả người dùng. Khi bạn tạo bất kỳ người dùng nào, theo mặc định, nó sẽ gán không gian bảng cụ thể.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.