2.7 KiB
2.7 KiB
模块07:权限与审计 - 运维日志
模块路径:/audit-log
前端文件:client/src/pages/AuditLog.tsx
后端路由:server/routers.ts → rbac.*
数据源:MySQL(nac_id.users, nac_id.audit_logs)
功能说明
权限与审计模块管理系统用户的角色权限,并维护不可篡改的操作审计日志。所有管理操作均自动记录到审计日志。
角色体系(RBAC)
| 角色 | 说明 | 权限范围 |
|---|---|---|
| admin | 系统管理员 | 全部权限(需 kyc_level≥2 + node_status=constitutional) |
| reviewer | 审批审核员 | 可审核 AI 审批案例 |
| legal | 法务专员 | 可查看合规规则和审批案例 |
| viewer | 只读用户 | 只读访问所有模块 |
角色判断逻辑
// 基于 nac_id.users 表字段判断角色
function getUserRole(user: NacUser): string {
if (user.kyc_level >= 2 && user.node_status === 'constitutional') {
return 'admin';
}
if (user.kyc_level >= 1) {
return 'reviewer';
}
return 'viewer';
}
审计日志数据模型
CREATE TABLE audit_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
action VARCHAR(100) NOT NULL, -- 操作类型,如 "LOGIN", "UPDATE_RULE"
resource VARCHAR(100), -- 操作资源
resource_id VARCHAR(100), -- 资源 ID
details TEXT, -- 操作详情(JSON)
ip_address VARCHAR(45), -- 操作 IP
user_agent VARCHAR(500), -- 浏览器信息
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
API 端点
| 端点 | 方法 | 说明 |
|---|---|---|
rbac.listUsers |
Query | 获取用户列表(含角色) |
rbac.auditLogs |
Query | 获取审计日志(支持用户/操作类型筛选) |
审计日志操作类型
| 操作类型 | 说明 |
|---|---|
| LOGIN | 用户登录 |
| LOGOUT | 用户退出 |
| CREATE_RULE | 创建合规规则 |
| UPDATE_RULE | 更新合规规则 |
| DELETE_RULE | 删除合规规则 |
| APPROVE_CASE | 审批通过案例 |
| REJECT_CASE | 审批拒绝案例 |
| TRIGGER_CRAWLER | 手动触发采集器 |
| REGISTER_PROTOCOL | 注册新协议 |
运维操作
# 查看最近审计日志
mysql -u root -pvaingkvf nac_id -e \
"SELECT action, resource, ip_address, created_at FROM audit_logs ORDER BY created_at DESC LIMIT 20;"
# 查看用户角色分布
mysql -u root -pvaingkvf nac_id -e \
"SELECT kyc_level, node_status, COUNT(*) as count FROM users GROUP BY kyc_level, node_status;"
# 提升用户为管理员
mysql -u root -pvaingkvf nac_id -e \
"UPDATE users SET kyc_level=2, node_status='constitutional' WHERE email='user@example.com';"