У меня возник вопрос о том, как использовать ссылки базы данных в Oracle PL/SQL. Предположим, у меня есть ссылка на базу данных (Database2), созданная в моей текущей базе данных, и я использую ее для доступа ко второй базе данных. Например:Ссылки на базы данных Oracle для ролей предоставления/отзыва
select *from [email protected];
Update [email protected]
set Comment = 'Hello world!'
where CustomerID = 123;
Все эти работы успешно работают.
Но предположим, что я хочу предоставлять роли или отменять роли от пользователя в Database2. Это можно сделать через ссылку на мою базу данных? Если да, то какой синтаксис?
Если я открываю/SQL сессии PL в database2, то синтаксис будет:
REVOKE some_role FROM bsmith;
GRANT some_other_role TO rjones;
Есть ли способ сделать это с моей исходной базы данных, используя мою ссылку базы данных?
Почему вы хотите сделать DDL по ссылке базы данных? Это вообще не допускается и, как правило, плохая идея. Вы можете создать хранимую процедуру в базе данных2, которая делает любой DDL-файл, а затем предоставить пользователю доступ к ссылке на базу данных для этой процедуры. Или вы можете получить очень сложную задачу и запланировать работу, которая будет выполняться в базе данных2, которая фактически будет предоставлять гранты, но это довольно сложная архитектура. –
Я пишу хранимую процедуру, которая возьмет некоторые конкретные записи и разрешения из моей производственной базы данных и скопирует их в мою базу данных разработки или тестирования. Я могу копировать записи без проблем, но предоставление разрешений оказывается намного сложнее. – MrMike