oracle 如何使用脚本实现访问控制(无需额外插件)

news/2024/4/17 7:09:01

随着这些年勒索病毒的爆发,各个企业对数据安全的要求越来越高,常见的办法有开启数据库审计,加数据库防火墙,网络限制等等;但是细粒度审计会消耗大量系统资源,第三方数据库防火墙一般是需要收费的;这里介绍我个人常用的四个db级别trigger,用于记录部分关键信息可以应对部分审计需要。

  • logon 成功信息

session logon后触发 记录登陆session的IP,machine,program,username,logontime等关键信息
PS:如果负载很高的DB 这个trigger请谨慎使用,数据量可能会很大,也可能会对登陆的时效产生部分影响

-- Create table
create table SYS.A_DB_SUCCESSFUL_LOGINS
(inst_id    NUMBER,username   VARCHAR2(30),osuser     VARCHAR2(30),machine    VARCHAR2(64),terminal   VARCHAR2(30),ipaddr     VARCHAR2(30),program    VARCHAR2(48),module     VARCHAR2(48),isdba      VARCHAR2(10),logon_time DATE
)---CREATE TRIGGER
CREATE OR REPLACE TRIGGER SYSTEM.a_db_successful_login_trgAFTER logon ON DATABASEDECLAREv_inst_id    a_db_successful_logins.inst_id%TYPE;v_ipaddr     a_db_successful_logins.ipaddr%TYPE;v_logon_user a_db_successful_logins.username%TYPE;v_machine    a_db_successful_logins.machine%TYPE;v_terminal   a_db_successful_logins.terminal%TYPE;v_osuser     a_db_successful_logins.osuser%TYPE;v_program    a_db_successful_logins.program%TYPE;v_module     a_db_successful_logins.module%TYPE;v_isdba      a_db_successful_logins.isdba%TYPE;
/************************************************************************name:  a_db_successful_login_trgpurpose: log and check the database LOGON action.revisions:ver        DATE         author           description1.0        2012         xiaoxiangqin      record logon info---------  ----------  ---------------  ---------------------------------************************************************************************/BEGIN-- read the contextv_inst_id    := sys_context('USERENV','INSTANCE');v_osuser     := sys_context('USERENV','OS_USER');v_machine    := sys_context('USERENV','HOST');v_terminal   := sys_context('USERENV','TERMINAL');v_ipaddr     := sys_context('USERENV','IP_ADDRESS');v_logon_user := sys_context('USERENV','SESSION_USER');v_isdba      := sys_context('USERENV','ISDBA');
--cut strange char for windows server.v_machine := REPLACE(v_machine,chr(0),'');IF v_machine <> sys_context('USERENV','SERVER_HOST

https://www.xjx100.cn/news/3293496.html

相关文章

MySQL的锁(简单入门)

文章目录 前言全局锁表级锁行级锁总结 前言 今天来讲一讲 MySQL 的锁&#xff0c;一个简单的入门。 MySQL 锁&#xff0c;分为全局锁&#xff0c;表级锁&#xff0c;行级锁&#xff0c;三个锁按照名字的颗粒度来算是越来越小的。锁越大性能越差&#xff0c;InnoDB 默认的是行…

进程的通信以及信号的学习

一&#xff0c;进程的通信&#xff1a; 种类&#xff1a;1.管道 2.信号 3.消息队列 4.共享内存 5.信号灯 6.套接字 1.管道: 1.无名管道 无名管道只能用于具有亲缘关系的进程间通信 pipe int pipe(int pipefd[2]); 功能: 创建一个无名管道 …

中文文本分类(pytorch 实现)

import torch import torch.nn as nn import torchvision from torchvision import transforms, datasets import os, PIL, pathlib, warningswarnings.filterwarnings("ignore") # 忽略警告信息# win10系统 device torch.device("cuda" if torch.cuda.i…

Socks5代理与代理IP的应用

在全球化的背景下&#xff0c;跨界电商和游戏行业正经历着蓬勃发展的时代。然而&#xff0c;随之而来的网络安全挑战也日益突出。为了应对这些挑战&#xff0c;Socks5代理与代理IP等技术成为了保障网络安全的重要工具。本文将探讨这些技术在跨界电商和游戏行业中的应用&#xf…

成人年龄判断(个人学习笔记黑马学习)

结合前面学习的input输入语句&#xff0c;完成如下案例: 1.通过input语句&#xff0c;获取键盘输入&#xff0c;为变量age赋值。(注意转换成数字类型) 2.通过if判断是否是成年人&#xff0c;满足条件则输出提示信息&#xff0c;如下&#xff1a; 欢迎来到黑马儿童游乐场&#x…

Qt开发 入门

Qt开发 入门 Qt Hello World程序 使用"按钮”实现 纯代码方式实现 &#xff08;1&#xff09;创建工程 剩下的直接下一步即可 &#xff08;2&#xff09;编写代码&#xff0c;widget.cpp #include "widget.h" #include "ui_widget.h"#include &…

幻兽帕鲁(Palworld 1.4.11.5.0)私有服务器搭建(docker版)

文章目录 说明客户端安装服务器部署1Panel安装和配置docker服务初始化设置设置开机自启动设置镜像加速 游戏服务端部署游戏服务端参数可视化配置 Palworld连接服务器问题总结 服务端升级&#xff08;1.5.0&#xff09; 说明 服务器硬件要求&#xff1a;Linux系统/Window系统&a…

UKP3d导出管道应力分析文件.psa,.cii文件的编号一致

今天&#xff0c;用户反馈&#xff1a;用户用UKP3d9.2.2&#xff0c;UKP3d导出的管道应力分析文件.CII文件的支吊架编号与UKP3d 支吊架编号不一致。如图&#xff1a; 过程&#xff1a;从UKP3d导出cii 中间文件后&#xff0c;再用CII软件转化为C2文件&#xff0c;再对比在UKP3d和…