Автоматические разрешения Oracle GRANT

Я пытаюсь проанализировать безопасность, которую обеспечивает СУБД, следующий сценарий дает краткое описание того, что я ищу.

// Текущий пользователь, подключенный к базе данных, - "master"

// 1. Базовый шаг для создания нового пользователя

CREATE USER slave
IDENTIFIED BY SlavePassword
DEFAULT TABLESPACE SomeTablespace;

// 2. Предоставление базовых ролей новому пользователю

GRANT CONNECT TO slave;
GRANT RESOURCE TO slave;

// 3. Новый пользователь slave теперь подключен к базе данных

// Пользователь "подчиненный" создает объекты базы данных (таблицы, процедуры и т. Д.) И получает привилегии от других пользователей системы

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

Я знаю, что подчиненное устройство может предоставлять любые свои привилегии другим пользователям, но существует ли особая привилегия, которая позволяет другим пользователям получать будущие привилегии, которые будут иметь «подчиненное устройство»?

Я использую Oracle и не уверен, допускают ли другие СУБД этот сценарий.


person user1899713    schedule 05.01.2013    source источник
comment
Вы можете избегать РЕСУРСА. Из Руководства по безопасности базы данных: Примечание. Oracle рекомендует создавать собственные роли для обеспечения безопасности базы данных, а не полагаться на эту роль. Эта роль не может быть создана автоматически в будущих выпусках Oracle Database.   -  person Jon Heller    schedule 06.01.2013


Ответы (4)


Единственный способ сделать это - использовать Database Vault. Если вы создаете область для «подчиненного» пользователя и добавляете в эту область «главного» пользователя, то главный пользователь будет иметь разрешения на все объекты в этой схеме. Это руководство от OTN

http://apex.oracle.com/pls/apex/f?p=44785:24:0::NO:24:P24_CONTENT_ID,P24_PREV_PAGE:4544,29

проведет вас через создание царства. Вам просто нужно пройти дополнительный этап добавления «мастера» в качестве участника области.

person Russ    schedule 06.01.2013

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

Есть только два уровня объектных привилегий:

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

Первый уровень - это упомянутый вами механизм, с помощью которого SLAVE предоставляет права на свои объекты MASTER. Второй уровень чрезвычайно эффективен, поскольку он применяется ко всем объектам, принадлежащим всем пользователям, включая учетные записи СУБД Oracle, такие как SYS. Следовательно, это нормально, что только пользователи DBA имеют привилегии ЛЮБОГО уровня.

Причина такого положения дел в том, что Oracle использует пользователей и схемы в качестве механизма для управления доступом к данным и функциям. Пользователь, который полностью принадлежит другому пользователю, не имеет никакого смысла в этом контексте.

person APC    schedule 06.01.2013


Я не уверен в вашем запросе здесь ... если вы хотите, чтобы "главный" пользователь автоматически получал доступ к "подчиненным" объектам, вы можете сделать это, предоставив dba мастеру

grant dba to master;

если вы хотите что-то еще, пожалуйста, уточните свой вопрос более подробно, чтобы помочь вам.

person Eng. Samer T    schedule 05.01.2013
comment
Это может быть частью ответа, когда мастер может получить доступ к подчиненным объектам. Что я действительно хотел, так это просто скопировать все новые привилегии, которые получает подчиненное устройство, главному пользователю. Представьте, что ПОЛЬЗОВАТЕЛЬ X предоставляет новые привилегии ведомому устройству, ведущее устройство также должно иметь копию этих привилегий, без ЯВНОЙ передачи привилегий ведущему устройству. - person user1899713; 06.01.2013
comment
Роль DBA должна быть предоставлена ​​только администраторам баз данных. Из вопроса неясно, является ли MASTER учетной записью администратора баз данных, хотя только администраторы баз данных должны создавать пользователей. - person APC; 06.01.2013