Создайте нового пользователя ORACLE с полным доступом к определенной SCHEMA

Как создать нового пользователя в ORACLE с полным доступом (изменение, удаление, выбор, вставка, отладка и т. д.) к только одной конкретной СХЕМЕ.


person Salvador    schedule 04.03.2010    source источник


Ответы (2)


Не может быть сделано. В Oracle привилегии предоставляются для определенных объектов, если только у вас нет мощных привилегий ANY, которые предоставляют доступ к любому объекту в любой схеме.

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

  1. вторая схема действительно требует просто подмножества привилегий для подмножества объектов; или
  2. вторая схема совершенно не нужна.

Теперь может случиться так, что подмножество в первом случае является очень большим подмножеством. Но лень не является оправданием плохой практики безопасности.

Что мы можем сделать, так это сгенерировать операторы предоставления из словаря данных:

select 'grant select on '||table_name||' to B'
from   user_tables
/

(для сценария, запускаемого пользователем A).

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

person APC    schedule 04.03.2010
comment
При необходимости можно было бы создать триггер DDL, автоматически предоставляющий соответствующие привилегии роли. Это может обеспечить гранты, подобные схеме, которые не редкость в других СУБД. - person Adam Musch; 04.03.2010

Вы можете использовать ПРОКСИ пользователя . Это не совсем то же самое, поскольку позволяет одному пользователю базы данных подключаться как другому, но с использованием собственного пароля. Таким образом, у вас может быть несколько пользователей, каждый со своим паролем, использующих одну и ту же схему.

Пример кода находится здесь.

person Gary Myers    schedule 04.03.2010