[oracle] вопрос про схемы

zya369

раньше юзал Postgres - там все было просто:

create schema SS;
create table ss.tt1(id integer);
create schema SS1;
create table ss1.tt1(id integer references ss.tt1(id;

при попытке создать схемы в оракле ("create schema SS")
пишет
ora-02420 отсутствует фраза разрешения использования схемы

что не так?

psm-home

В Oracle вроде CREATE SCHEMA служит только чтобы заполнить существующую схему табличками/вьюшками в рамках одной транзакции. А саму схему создают через CREATE USER. То есть надо зайти как SYSDBA, создать пользователя (и схему) командой CREATE USER. Потом дать необходимые привилегии свежесозданному пользователю через GRANT (как минимум на создание таблицы/создание сессии). Потом зайти под созданным юзером и тогда можно сказать что-то вроде:
 CREATE SCHEMA AUTHORIZATION new_user
CREATE TABLE table
(id NUMBER(10) PRIMARY KEY, value NUMBER(10
.
А ругается оно у тебя как раз потому, что ты не указал в команде фразу AUTHORIZATION <имя_пользователя>.

zya369

А саму схему создают через CREATE USER.
т.е. чтоы создать несколько схем - нужно создать несколько юзеров?

psm-home

Насколько мне известно, да.

zya369

добавил юзера asuuis с ролью CONNECT и правами "SELECT ANY DICTIONARY", "CREATE TABLE", "CREATE SESSION"
делаю следующее:
create schema authorization asuuis;
<..ОК..>
create table ttt(id integer);
<..>
ORA-01950: нет привилегий на раздел 'USERS'

в чем дело?
все, создалась таблица

zya369

а как простейшим образом дать одному пользователю полные права на определенные схемы?

zya369

народ, подскажите кто-нить как сделать таблицу со ссылкой на таблицу из другой схемы?
делаю следующее (в качестве примера):
create table org.t1(id integer references util.users(id
create table t1(id integer references util.users(id
create table org.t1(id integer)

получаю
create table org.t1(id integer references util.users(id
*
ошибка в строке 1:
ORA-00942: таблица или представление пользователя не существует
Таблица создана.
Таблица создана.

т.е. права на создание таблицы в схеме org есть, но ссылку сделать не получается...
ЗЫ все запросы выполнялись от имени пользователя Util.
соотв. в схеме Util ссылки на Users(id) получаются

vijrel7878

есть проблемы заведения этих двух таблиц в одной схеме?

zya369

просто раньше проект был на постгресеа там с этим проблем нету..
соответственно везде в коде уже прошиты имена схем
Оставить комментарий
Имя или ник:
Комментарий: