Как вы думаете, как можно узнать старый пароль дблинка (database link), который был изменен совсем недавно?
Один мой коллега (НЕ ДБА!) предложил суперский вариант, как это можно сделать: посмотреть флешбеком (flashback) состояние системной таблицы, в которой хранится информация о дблинках.
Смотрим, к каким системным таблицам обращается вьюшка dba_db_links:
create or replace view dba_db_linksДальше, флешбеком смотрим состояние системной таблицы sys.link$ на час назад:
(owner, db_link, username, host, created)
as
select u.name, l.name, l.userid, l.host, l.ctime
from sys.link$ l, sys.user$ u
where l.owner# = u.user#
SQL> select name, userid, passwordOLDPASSWD - это наш старый пароль. Чтоб убедиться, что мы нашли то, что нужно посмотрим текущий пароль:
from sys.link$ as of timestamp(sysdate-1/24)
where name ='MYDBLINK';
NAME USERID PASSWORD
-------------------- ---------- ----------
MYDBLINK USERNAME OLDPASSWD
SQL> select name, userid, passwordВот так вот нашли только что измененный пароль. А я уже хотела логмайнером (logminer) порыться в реду-логах (redo). Правда, описанный выше метод сработает только если изменения были сделаны совсем недавно, то есть в пределах undo_retention (не всегда гарантированно).
from sys.link$ as of timestamp(sysdate)
where name ='KI_ICR002';
NAME USERID PASSWORD
-------------------- ---------- ----------
MYDBLINK USERNAME NEWPASSWD