Skip to content

Daily Plan

更新: 5/3/2025 字数: 0 字 时长: 0 分钟

  • [ ]

Daily Study

更新: 5/3/2025 字数: 0 字 时长: 0 分钟

1. Oracle数据库审计规则设置

首先需要启用Oracle的审计功能。可以使用以下命令:

sql

ALTER SYSTEM SET audit_trail=db SCOPE=SPFILE;

然后,为了审计非法操作,你可以设置以下规则:

sql
-- 审计所有用户对所有表的SELECT操作 
AUDIT SELECT TABLE BY ALL; 
-- 宦计所有用户的登录尝试 
AUDIT SESSION;`

2. 提取审计日志

审计日志通常保存在DBA_AUDIT_TRAIL视图中。你可以使用以下查询来提取这些日志:

sql
SELECT * FROM DBA_AUDIT_TRAIL WHERE ACTION_NAME = 'SELECT' AND RETURNCODE != 0;

3. Web应用设计

使用Python的Flask框架和Bootstrap来创建一个简单的Web应用。

3.1 安装必要的库

bash
pip install Flask Flask-SQLAlchemy

3.2 创建一个简单的Flask应用

python
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'oracle://username:password@localhost:1521/yourdbname'
db = SQLAlchemy(app)

class AuditLog(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(50))
    action_name = db.Column(db.String(50))
    returncode = db.Column(db.Integer)
    timestamp = db.Column(db.DateTime)

@app.route('/')
def index():
    logs = AuditLog.query.filter_by(action_name='SELECT', returncode!=0).all()
    return render_template('index.html', logs=logs)

if __name__ == '__main__':
    app.run(debug=True)

3.3 创建一个简单的HTML模板

templates目录下创建一个index.html文件:

html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Oracle Audit Logs</title>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-5">
    <h2>Oracle Audit Logs</h2>
    <table class="table table-bordered">
        <thead>
            <tr>
                <th>ID</th>
                <th>Username</th>
                <th>Action</th>
                <th>Return Code</th>
                <th>Timestamp</th>
            </tr>
        </thead>
        <tbody>
            {% for log in logs %}
            <tr>
                <td>{{ log.id }}</td>
                <td>{{ log.username }}</td>
                <td>{{ log.action_name }}</td>
                <td>{{ log.returncode }}</td>
                <td>{{ log.timestamp }}</td>
            </tr>
            {% endfor %}
        </tbody>
    </table>
</div>
</body>
</html>

菜就多练

本站访客数 人次 本站总访问量