Создать оракула только для чтения пользователя для ODBC - PullRequest
0 голосов
/ 21 февраля 2019

Я создал пользователя в базе данных oracle, используя

create user xxx identified by test; 
grant create session to xxx;
grant select any table to xxx;
grant select any dictionary to xxx;

Я также установил ODBC-соединение из Excel, которое отлично работает для пользователя yyy, но когда я пытаюсь сделать то же самое для xxx Iполучить ошибку: таблица или представление не существует.

поэтому мой вопрос: как мне сделать так, чтобы таблицы отображались / были доступны для пользователя xxx?

Благодарим Вас за помощь.Приветствия

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Решение с синонимами в порядке.Другой вариант - изменить текущую схему

  1. grant alter session to xxx
  2. Войти как xxx
  3. После входа в базу данных.ALTER SESSION SET CURRENT_SCHEMA = yyy

теперь имя каждого объекта будет разрешено в схеме yyy

0 голосов
/ 21 февраля 2019

Вам необходимо создать SYNONYM в схеме XXX для таблиц в схеме YYY.

grant create synonym to XXX;

Запустить этот SQL как пользователь YYY.

select 'CREATE SYNONYM ' ||tname|| ' for  '||'YYY.'||TNAME||';'  from tab
where tname not like 'BIN$%'

, например, вывести этот sql.

CREATE SYNONYM TEST2 for  YYY.TEST2;
CREATE SYNONYM TEST_ARCHIVE for  YYY.TEST_ARCHIVE;
CREATE SYNONYM TEST_ONLINE for  YYY.TEST_ONLINE;

Запустите этот SQL как XXX

CREATE SYNONYM TEST2 for  YYY.TEST2;
CREATE SYNONYM TEST_ARCHIVE for  YYY.TEST_ARCHIVE;
CREATE SYNONYM TEST_ONLINE for  YYY.TEST_ONLINE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...