Подключение другого пользователя к PDB в Oracle 12c

можно ли получить доступ к нескольким PDB с несколькими пользователями?

Рассмотрим сценарий:

У меня есть два обычных пользователя: - c##a и c##b и pdb: - PDBTEST

Я столкнулся с проблемой:

Когда я подключаюсь к обычному пользователю - c##b, я не могу видеть таблицу в PDBTEST, созданную путем регистрации с помощью c##a.

Хотя права в PDBTEST я назначил как для пользователей c##a, так и для c##b.

Для обычного пользователя c##b есть ли другой способ получить доступ к PDBTEST?

Шаги, которые я выполняю:

Подключиться как sysdba

1> создал двух пользователей c##a и c##b (container = ALL)

2> общая роль со всеми привилегиями: c##role (контейнер = ВСЕ)

3> Назначенная роль c## обоим пользователям: c##a и c##b (контейнер = ВСЕ)

4> Создан PDB: PDBTEST

Измененный сеанс и установленный контейнер = PDBTEST

5> Предоставление роли c## обоим пользователям: c##a и c##b внутри PDBTEST

6> соединиться с c##a (не как sysdba)

Измененный сеанс и установленный контейнер = PDBTEST

7> Созданная таблица и вставленная запись: TestTable

8> соединение с c##b (не как sysdba)

Измененный сеанс и установленный контейнер = PDBTEST

Я не могу получить доступ к таблице «TestTable» после подключения к c##b..

Более того, если я подключаюсь к c##a, я могу получить доступ к вставленным записям.


person user3279775    schedule 06.02.2014    source источник


Ответы (1)


Вы забыли уточнить имя таблицы (вы не указали имя схемы). Это ничем не отличается от базы данных, отличной от pdb. Если вы определите синоним, вы можете заставить это работать.

Кроме того, set container предоставляется только для целей администрирования и никогда не должен использоваться для доступа пользователей. Для доступа пользователей вы должны создать специальный сервис.

person steve    schedule 09.02.2014
comment
Да, это работает с синонимами, но когда один и тот же случай возникает для ~ 400 таблиц среди 5-6 PDB, а в приложении есть несколько пользователей (например, c # 3a и c # # b) с разными ролями и привилегиями, то как я могу преодолеть такую ​​ситуацию ? Вместо установки контейнера, как я могу создать выделенный сервис? - person user3279775; 26.02.2014