[ОТВЕТИТЬ]
Опции темы
31.03.2014 17:12  
OlegON
Как-то не приходилось раньше такой мусор чистить, а тут попалось.
Сначала втупую выбрал
Код:
select * from dba_db_links;
и просто попытался дропнуть user.link, на что БД ответила об отсутствии такогового. Немного зашел в тупик. Вроде бы и DBA, а грохнуть линк у другого пользователя не дает. Сделал
Код:
alter session set current schema
нет прав. Копать мануалы было долго, поэтому сделал
Код:
create or replace procedure user.drop_link(linkname varchar) 
as
begin
execute immediate 'drop database link '||linkname;
end;

begin
ibs.drop_link('link_name');
end;

drop procedure user.drop_link;
обращаю внимание, что процедурка "дырявая" с точки зрения безопасности, поэтому лучше ее сразу и убить. Если кому-то попадется более правильный вариант - прошу написать.
 
24.09.2014 13:00  
bayan
Код:
CREATE OR REPLACE PROCEDURE drop_dblink(
    schemaname VARCHAR2,
    dbLink     VARCHAR2 )
IS
  plsql VARCHAR2(1000);
  cur   NUMBER;
  UID   NUMBER;
  rc    NUMBER;
BEGIN
  SELECT u.user_id INTO UID FROM all_users u WHERE u.username = schemaName;
  plsql := 'DROP DATABASE LINK "'||dbLink||'"';
  cur   := SYS.DBMS_SYS_SQL.open_cursor;
  SYS.DBMS_SYS_SQL.parse_as_user( c => cur, STATEMENT => plsql, language_flag => DBMS_SQL.native, userID => UID );
  rc := SYS.DBMS_SYS_SQL.EXECUTE(cur);
  SYS.DBMS_SYS_SQL.close_cursor(cur);
END;
/
И собственно запуск будет выглядеть:
Код:
EXEC drop_dblink('USER', 'DB_LINK');
Owner процедуры должен быть отгрантован на execute SYS.DBMS_SYS_SQL и иметь права на селект из all_users. Таким же образоом удаляются и создаются dba_jobs.
 
"Спасибо" bayan от:
24.09.2014 13:06  
OlegON
Прикольная эта SYS.DBMS_SYS_SQL, только вот недокументированная, предназначена для использования только внутри Oracle... И надо предупредить, что грантовка ее кому-то обозначает практически выдачу прав DBA.
 
 
Опции темы



Часовой пояс GMT +3, время: 20:24.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.