NAC_Blockchain/docs_center/nac-admin/modules/07-audit-log.md

2.7 KiB
Raw Blame History

模块07权限与审计 - 运维日志

模块路径/audit-log
前端文件client/src/pages/AuditLog.tsx
后端路由server/routers.tsrbac.*
数据源MySQLnac_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';"