как получить всплывающее окно, когда кто-то подключился к определенной базе данных - PullRequest
0 голосов
/ 03 июня 2019

Можно ли как-нибудь написать скрипт для получения всплывающего сообщения в виде электронного письма, которое какой-либо пользователь x подключил к определенной базе данных

Сценарий: была база данных "X", и если какой-то пользователь "ABC" вошел в эту базу данных, используя некоторый идентификатор пользователя и пароль учетной записи, электронное письмо должно быть отправлено некоторым контактам: говоря - этот конкретный пользователь подключился в эту базу данных.

В настоящее время мы используем Toad / Sql Developer в качестве сторонних инструментов для подключения к базе данных Oracle.

Есть ли какой-нибудь способ, которым я могу добиться этого, исправляя процедуру sql или сценарий оболочки или любым другим способом.

1 Ответ

1 голос
/ 03 июня 2019

Один из вариантов - создать триггер AFTER LOGON, например,

CREATE OR REPLACE TRIGGER trg_user_connected
   AFTER LOGON
   ON DATABASE
DECLARE
  l_global_name varchar2(30);
BEGIN
   SELECT global_name
     INTO l_global_name
     FROM global_name;

   UTL_MAIL.send (sender      => 'noreply@orcl',
                  recipients  => 'avinash@gmail.com',
                  cc          => NULL,
                  bcc         => NULL,
                  mime_type   => NULL,
                  subject     => 'Logged right now into ' || l_global_name,
                  MESSAGE     => USER);
END;
/

Возможно, вы захотите каким-то образом ограничить его (иначе ваш почтовый ящик взорвется:)).

[РЕДАКТИРОВАТЬ: падение объекта]

CREATE OR REPLACE TRIGGER trg_bd
   AFTER DROP
   ON SCHEMA
DECLARE
   oper  VARCHAR2 (100);
BEGIN
   SELECT ora_sysevent INTO oper FROM DUAL;

   IF oper = 'DROP'
   THEN
      utl_mail.send ...
   END IF;
END;
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...