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>