нет привилегий на табличное пространство «SYSTEM» ORA-00942

у меня есть эта ошибка при попытке создать таблицу графически:

Не удалось создать таблицу ELEVE. Не удалось создать таблицу ORA-01950: нет прав на табличное пространство «SYSTEM» ORA-00942: ›таблица или представление не существует ORA-06510: PL/SQL: необработанное пользовательское исключение


person Hikmet Benyahia    schedule 01.02.2021    source источник


Ответы (2)


Прежде всего, вы не должны ничего делать в табличном пространстве SYSTEM. Поскольку созданный вами пользователь еще не имеет никаких объектов, я предлагаю вам удалить его и создать заново, но на этот раз указав другое табличное пространство. Например:

SQL> connect sys as sysdba
Enter password:
Connected.
SQL> select tablespace_name from dba_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS

SQL> create user ecole identified by ecole
  2  default tablespace users
  3  temporary tablespace temp
  4  quota unlimited on users;

User created.

SQL> grant create session, create table to ecole;

Grant succeeded.

SQL>

Однако, если вы настаиваете на том, чтобы делать все в табличном пространстве SYSTEM, измените пользователя и предоставьте квоту в табличном пространстве, например.

SQL> alter user ecole quota 100M on system;

User altered.

SQL>

Затем создайте таблицу.

person Littlefoot    schedule 01.02.2021
comment
да, это решает мне проблему с изменением пользователя ..., это просто простой тест, я сделаю, как вы предложили мне в моем проекте, спасибо - person Hikmet Benyahia; 02.02.2021
comment
привет, есть ли способ назначить два табличных пространства для одного пользовательского примера: vehiculelocation для пользователя и TableLocationVehicule, TableLocationVehicul1 для табличных пространств? - person Hikmet Benyahia; 03.02.2021
comment
Насколько я могу судить, @Hikmet нет. Табличное пространство по умолчанию только одно. Но вы можете указать разные табличные пространства для своих объектов. Например, при создании таблицы оператор CREATE TABLE позволяет вам указать табличное пространство, которое будет содержать эту таблицу. То же самое касается, например. СОЗДАТЬ ИНДЕКС. - person Littlefoot; 03.02.2021
comment
я нашел способ, который сработал для меня: code SQL> create tablespace meta_data datafile size 1m; Tablespace created. SQL> create tablespace data datafile size 1m; Tablespace created. SQL> create user user1 identified by user1 quota unlimited on meta_data 2 ; User created. SQL> alter user user1 identified by user1 quota unlimited on data; User altered. --Now, the user can create objects on both of the tablespaces - person Hikmet Benyahia; 03.02.2021

Это происходит, когда ваш исполняемый пользователь не имеет привилегий для системного табличного пространства, которое является табличным пространством по умолчанию для исполняемого пользователя.

person Tuvshinzaya Mendbayar    schedule 01.02.2021
comment
создать файл данных табличного пространства ts1 'ts1_data.dbf' размером 2 м; создать пользователя ecole, идентифицированного hikmet; создать роль role_ecole; Грант на создание таблицы, создание сеанса, CREATE VIEW для role_ecole; Назначьте роль role_ecole для ecole; - person Hikmet Benyahia; 02.02.2021
comment
Это не дает ответа на вопрос. Получив достаточную репутацию, вы сможете /comment">прокомментировать любой пост; вместо этого дайте ответы которые не требуют разъяснений от спрашивающего. – Из обзора - person EJoshuaS - Reinstate Monica; 02.02.2021