当有人连接到特定数据库时如何获得弹出窗口

时间:2019-06-03 10:43:26

标签: linux oracle oracle-sqldeveloper toad

我有什么办法可以编写脚本来获取弹出窗口,作为某些x用户已连接到特定数据库的电子邮件

方案:存在一个“ X”数据库,如果某个“ ABC”用户已使用某些帐户用户ID和密码登录到该数据库,则应触发一封电子邮件给某些联系人:说-该特定用户已连接到该数据库。

我们当前正在使用Toad / Sql Developer作为第三方工具来连接到oracle数据库。

我有什么办法可以通过纠正sql过程或shell脚本或其他任何方式来实现这一目标。

1 个答案:

答案 0 :(得分:1)

一种选择是创建一个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;
/