Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
SQL> connect system/***@TST
Connected.
SQL> create user test identified by ***;
User created.
SQL> grant dba to test;
Grant succeeded.
SQL> connect test/***@TST
Connected.
SQL> create database link back_dev connect to developer identified by *** using 'DEV';
Database link created.
SQL> select * from dual@back_dev;
D
-
X
SQL> connect upd/***@DEV
Connected.
create database link db_test connect to test identified by *** using 'TST';
Database link created.
--Разрешу developer используя алиас test_server попадать на сервер DEV к пользователю TEST
insert into upd$servers values ('test_server', 'db_test', 'developer', 'back_dev');
1 row inserted.
SQL> connect developer/***@DEV
Connected.
--я авторизован как developer и пакет будет создаваться в этой схеме
begin
upd.ChannelUpdate('test_server');
end;
--сначала в схеме developer успешно скомпилируется пакет
create or replace package test1 as
procedure proc1;
end;
/
begin
upd.ChannelPrepare;
--произойдет компиляция пакета на сервере TST для пользователя test, который имеет права DBA
upd.ChannelApply;
end;
ORA-01031: insufficient privileges
grant create procedure to test;
PL/SQL через dblink