MongoDB安全加固最佳实践:CIS基准符合性检查与实施步骤

一、MongoDB安全加固与CIS基准的重要性

1.1 为什么需要安全加固

MongoDB的默认配置存在严重的安全隐患,这导致了过去大量数据泄露事件。根据CIS(Center for Internet Security)报告,超过85%的MongoDB实例因配置不当而暴露在互联网上,导致数据泄露事件频发。

安全加固的关键价值

  • 防止数据泄露:2023年,由于配置不当导致的MongoDB数据泄露平均造成**$3.9M**损失
  • 满足合规要求:GDPR、HIPAA、PCI DSS等法规要求严格的安全控制
  • 保护业务连续性:防止因安全事件导致的服务中断
  • 降低法律风险:避免因数据泄露导致的巨额罚款和诉讼
  • 增强客户信任:展示对数据安全的承诺

关键事实 :实施CIS基准的组织,数据泄露概率降低68% ,平均响应时间缩短50%(IBM 2023安全报告)。

1.2 CIS基准介绍

1.2.1 CIS组织与基准

CIS (Center for Internet Security)是一个非营利组织,提供安全配置基准,帮助组织建立安全系统。CIS基准基于专家共识,包含详细的配置指南和最佳实践。

  • CIS MongoDB基准:提供MongoDB安全配置的详细指导
  • 最新版本:CIS MongoDB Benchmark v2.0.0(2023年发布)
  • 评级系统:每个控制措施分为L1(基础)和L2(高级)
1.2.2 CIS基准的结构

CIS MongoDB基准分为以下关键领域:

  1. 服务配置:MongoDB服务的安全设置
  2. 网络配置:网络访问控制和安全
  3. 认证与授权:身份验证和权限管理
  4. 加密配置:数据传输和存储的加密
  5. 审计与监控:安全事件监控和记录
  6. 管理与维护:持续安全管理和改进

重要提示:CIS基准不是"一刀切"的解决方案,而是需要根据您的具体环境和风险偏好进行调整的指南。

二、CIS MongoDB基准关键要求详解

2.1 服务配置安全要求

2.1.1 禁用不必要功能(CIS 2.1.1)

要求:禁用REST接口和HTTP接口,除非明确需要且有适当保护

风险:启用这些接口会增加攻击面,特别是当没有适当认证时

实施方法

yaml 复制代码
# mongod.conf
net:
  http:
    enabled: false
  bindIp: 127.0.0.1
  port: 27017
2.1.2 限制资源使用(CIS 2.1.3)

要求:设置资源限制,防止资源耗尽攻击

实施方法

yaml 复制代码
# mongod.conf
processManagement:
  fork: true
  pidFilePath: /var/run/mongodb/mongod.pid

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
  quiet: false

storage:
  journal:
    enabled: true
  engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 4  # 限制为总内存的50-60%
2.1.3 以非root用户运行(CIS 2.1.5)

要求:MongoDB服务不应以root用户运行

实施方法

bash 复制代码
# 确保MongoDB服务以非root用户运行
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown mongodb:mongodb /etc/mongodb

2.2 网络与防火墙配置

2.2.1 限制网络暴露(CIS 2.2.1)

要求:MongoDB不应绑定到公共IP,应仅绑定到必要网络接口

实施方法

yaml 复制代码
# mongod.conf
net:
  bindIp: 127.0.0.1,10.20.30.0/24  # 仅内部网络
  port: 27017
  ipv6: false
2.2.2 配置防火墙规则(CIS 2.2.2)

要求:实施网络防火墙规则,仅允许授权IP访问

实施方法(UFW示例):

bash 复制代码
# 仅允许特定IP访问MongoDB
sudo ufw allow from 10.20.30.50 to any port 27017
sudo ufw deny 27017/tcp
2.2.3 限制分片集群端口(CIS 2.2.3-2.2.5)

要求:为Config Servers、Mongos和Shard Servers配置单独的网络访问控制

实施方法

bash 复制代码
# Config Server防火墙规则
sudo ufw allow from 10.20.30.0/24 to any port 27019
sudo ufw deny 27019/tcp

# Mongos防火墙规则
sudo ufw allow from 10.20.40.0/24 to any port 27017
sudo ufw deny 27017/tcp

2.3 认证与授权要求

2.3.1 启用认证(CIS 2.3.1)

要求:始终启用认证,不应在生产环境中使用无认证配置

实施方法

yaml 复制代码
# mongod.conf
security:
  authorization: enabled
  keyFile: /etc/mongodb/keyfile
2.3.2 使用SCRAM-SHA-256(CIS 2.3.2)

要求:使用SCRAM-SHA-256而非SCRAM-SHA-1

实施方法

javascript 复制代码
// 创建SCRAM-SHA-256用户
use admin
db.createUser({
  user: "admin",
  pwd: "StrongPassword123!",
  roles: ["root"],
  mechanisms: ["SCRAM-SHA-256"]
})
2.3.3 最小权限原则(CIS 2.3.3-2.3.11)

要求:用户应仅拥有完成工作所需的最小权限

实施方法

javascript 复制代码
// 创建专用角色
db.createRole({
  role: "data_reader",
  privileges: [
    { resource: { db: "appdb", collection: "" }, actions: ["find"] }
  ],
  roles: []
});

// 分配角色给用户
db.createUser({
  user: "app_user",
  pwd: "SecurePassword456!",
  roles: [{ role: "data_reader", db: "appdb" }]
});

2.4 加密配置要求

2.4.1 传输加密(CIS 2.4.1)

要求:配置TLS/SSL加密所有网络通信

实施方法

yaml 复制代码
# mongod.conf
net:
  ssl:
    mode: requireTLS
    PEMKeyFile: /etc/mongodb/mongodb.pem
    CAFile: /etc/mongodb/ca.crt
    allowInvalidCertificates: false
2.4.2 静态数据加密(CIS 2.4.2)

要求:启用WiredTiger存储引擎加密

实施方法

yaml 复制代码
# mongod.conf
security:
  enableEncryption: true
  encryptionKeyFile: /etc/mongodb/encryption-key

2.5 审计与监控要求

2.5.1 启用审计日志(CIS 2.5.1)

要求:配置审计日志记录所有关键操作

实施方法

yaml 复制代码
# mongod.conf
auditLog:
  destination: file
  format: JSON
  path: /var/log/mongodb/audit.log
  filter: '{ "users": { "$exists": true } }'
2.5.2 审计日志保护(CIS 2.5.2)

要求:保护审计日志不被篡改

实施方法

bash 复制代码
# 设置审计日志权限
sudo chown mongodb:mongodb /var/log/mongodb/audit.log
sudo chmod 600 /var/log/mongodb/audit.log
2.5.3 审计日志分析(CIS 2.5.3)

要求:定期分析审计日志,识别异常活动

实施方法

javascript 复制代码
// 每天运行审计日志分析
function analyzeAuditLogs() {
  const yesterday = new Date(Date.now() - 24 * 60 * 60 * 1000);
  const suspicious = db.getSiblingDB("admin").system.profile.find({
    ts: { $gt: yesterday },
    "result": { $ne: 0 } // 失败的操作
  }).toArray();
  
  if (suspicious.length > 0) {
    sendAlert(`Found ${suspicious.length} suspicious operations`);
  }
}

三、CIS符合性实施步骤

3.1 准备阶段

3.1.1 评估当前配置
bash 复制代码
# 收集当前配置信息
mongo --eval 'db.adminCommand({ getParameter: 1, security: 1 })'
mongo --eval 'db.adminCommand({ getParameter: 1, net: 1 })'
mongo --eval 'db.adminCommand({ getParameter: 1, auditLog: 1 })'
3.1.2 了解合规要求
  • 确定适用的合规框架(GDPR、HIPAA、PCI DSS等)
  • 识别关键数据和操作
  • 确定合规性要求和优先级
3.1.3 制定实施计划
markdown 复制代码
# CIS实施计划

| 控制项 | 优先级 | 实施者 | 截止日期 | 状态 |
|---------|----------|----------|------------|--------|
| 2.1.1 禁用REST接口 | 高 | DBA | 2023-10-15 | 待实施 |
| 2.2.1 限制网络暴露 | 高 | 运维 | 2023-10-18 | 实施中 |
| 2.3.1 启用认证 | 高 | DBA | 2023-10-20 | 待实施 |
| ... | ... | ... | ... | ... |

3.2 认证与授权配置

3.2.1 创建管理员用户
javascript 复制代码
use admin
db.createUser({
  user: "security_admin",
  pwd: "StrongPassword123!",
  roles: [
    { role: "root", db: "admin" }
  ],
  mechanisms: ["SCRAM-SHA-256"],
  authenticationRestrictions: [
    {
      clientSource: ["10.20.30.100"],
      serverAddress: ["mongodb:27017"]
    }
  ]
})
3.2.2 配置密码策略(MongoDB 5.0+)
javascript 复制代码
// 创建强密码策略
db.createRole({
  role: "strong_password_policy",
  privileges: [],
  roles: [],
  authenticationRestrictions: [
    {
      passwordPolicy: {
        minLength: 12,
        minUpperCase: 1,
        minLowerCase: 1,
        minNumeric: 1,
        minSpecialChar: 1
      }
    }
  ]
});

// 应用策略到用户
db.updateUser("app_user", {
  roles: [
    { role: "data_reader", db: "appdb" },
    { role: "strong_password_policy", db: "admin" }
  ]
});

3.3 网络安全配置

3.3.1 限制MongoDB绑定IP
yaml 复制代码
# mongod.conf
net:
  bindIp: 127.0.0.1,10.20.30.10
  port: 27017
  ssl:
    mode: requireTLS
    PEMKeyFile: /etc/mongodb/server.pem
    CAFile: /etc/mongodb/ca.crt
3.3.2 配置系统防火墙
bash 复制代码
# Ubuntu/Debian
sudo ufw allow from 127.0.0.1 to any port 27017
sudo ufw allow from 10.20.30.0/24 to any port 27017
sudo ufw deny 27017/tcp
sudo ufw enable

# 验证配置
sudo ufw status verbose
3.3.3 分片集群网络隔离
bash 复制代码
# Config Server防火墙规则
sudo ufw allow from 10.20.30.0/24 to any port 27019
sudo ufw deny 27019/tcp

# Mongos防火墙规则
sudo ufw allow from 10.20.40.0/24 to any port 27017
sudo ufw deny 27017/tcp

# Shard Server防火墙规则
sudo ufw allow from 10.20.50.0/24 to any port 27018
sudo ufw deny 27018/tcp

3.4 加密配置

3.4.1 生成TLS证书
bash 复制代码
# 创建CA证书
openssl req -newkey rsa:4096 -new -x509 -days 3650 -nodes \
  -out ca.crt -keyout ca.key -subj "/C=US/ST=California/L=San Francisco/O=MyOrg/OU=IT/CN=MyOrg CA"

# 创建服务器证书
openssl req -new -key server.key -out server.csr \
  -subj "/C=US/ST=California/L=San Francisco/O=MyOrg/OU=IT/CN=mongodb.example.com"
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
  -out server.crt -days 365 -sha256
cat server.key server.crt > server.pem
3.4.2 配置TLS加密
yaml 复制代码
# mongod.conf
net:
  ssl:
    mode: requireTLS
    PEMKeyFile: /etc/mongodb/server.pem
    CAFile: /etc/mongodb/ca.crt
    allowInvalidCertificates: false
    allowInvalidHostnames: false
3.4.3 配置静态加密
yaml 复制代码
# mongod.conf
security:
  enableEncryption: true
  encryptionKeyFile: /etc/mongodb/encryption-key
  kmip:
    enabled: false

3.5 审计与监控配置

3.5.1 配置审计日志
yaml 复制代码
# mongod.conf
auditLog:
  destination: file
  format: JSON
  path: /var/log/mongodb/audit.log
  filter: |
    {
      "$or": [
        { "atype": "login" },
        { "ns": { "$regex": "^sensitive\\." } }
      ]
    }
  rotation:
    size: 500MB
    threshold: 24 hours
3.5.2 审计日志分析脚本
javascript 复制代码
// audit-analyzer.js
function analyzeAuditLogs() {
  const last24Hours = new Date(Date.now() - 24 * 60 * 60 * 1000);
  const logEntries = db.getSiblingDB("admin").system.profile.find({
    ts: { $gt: last24Hours }
  }).toArray();
  
  // 1. 失败登录分析
  const failedLogins = logEntries.filter(e => e.atype === 'login' && e.result !== 0);
  if (failedLogins.length > 10) {
    alertFailedLogins(failedLogins);
  }
  
  // 2. 敏感数据访问分析
  const sensitiveAccess = logEntries.filter(e => 
    e.ns && e.ns.startsWith('sensitive.') && e.atype === 'find'
  );
  if (sensitiveAccess.length > 50) {
    alertSensitiveAccess(sensitiveAccess);
  }
  
  // 3. 高风险操作
  const riskyOperations = logEntries.filter(e => 
    e.atype === 'dropDatabase' || e.atype === 'dropCollection'
  );
  if (riskyOperations.length > 0) {
    alertRiskyOperations(riskyOperations);
  }
  
  return {
    totalEntries: logEntries.length,
    failedLogins: failedLogins.length,
    sensitiveAccess: sensitiveAccess.length,
    riskyOperations: riskyOperations.length
  };
}

// 运行分析
const analysis = analyzeAuditLogs();
printjson(analysis);

3.6 服务安全配置

3.6.1 禁用不必要功能
yaml 复制代码
# mongod.conf
net:
  http:
    enabled: false
  ipv6: false
  unixDomainSocket:
    enabled: true
    pathPrefix: /var/run/mongodb
3.6.2 限制资源使用
yaml 复制代码
# mongod.conf
storage:
  wiredTiger:
    engineConfig:
      cacheSizeGB: 8  # 通常为物理内存的50-60%
      journalCompressor: zlib
3.6.3 以非root用户运行
bash 复制代码
# 创建专用用户
sudo useradd -r -d /var/lib/mongodb -s /bin/false mongodb
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown mongodb:mongodb /etc/mongodb

# 验证运行用户
ps -ef | grep mongod | grep -v grep | awk '{print $1}'

四、CIS符合性验证

4.1 自动化检查工具

4.1.1 使用CIS Benchmark Scanner
bash 复制代码
# 安装CIS Benchmark Scanner
wget https://www.cisecurity.org/cis-benchmarks/
chmod +x cis-benchmark-scanner
./cis-benchmark-scanner --profile=mongodb --output=report.html
4.1.2 使用MongoDB Cloud Manager
  1. 注册MongoDB Cloud Manager账户
  2. 添加MongoDB实例
  3. 启用安全评估功能
  4. 生成CIS合规性报告
4.1.3 自定义检查脚本
javascript 复制代码
// cis-compliance-check.js
function checkCISCompliance() {
  const results = {
    passed: [],
    failed: [],
    warnings: []
  };
  
  // 2.1.1 禁用REST接口
  const httpEnabled = db.adminCommand({getParameter:1}).parsed.net.http.enabled;
  if (httpEnabled) {
    results.failed.push("2.1.1 REST interface is enabled");
  } else {
    results.passed.push("2.1.1 REST interface is disabled");
  }
  
  // 2.1.3 资源限制
  const cacheSize = db.adminCommand({getParameter:1}).parsed.storage.wiredTiger.engineConfig.cacheSizeGB;
  if (cacheSize > (getTotalMemory() * 0.7)) {
    results.warnings.push(`2.1.3 Cache size (${cacheSize}GB) is too high`);
  } else {
    results.passed.push("2.1.3 Cache size is appropriate");
  }
  
  // 继续其他检查...
  
  return results;
}

// 生成报告
const compliance = checkCISCompliance();
printjson(compliance);

4.2 手动验证方法

4.2.1 配置检查
bash 复制代码
# 检查关键配置
mongo --eval 'db.adminCommand({getParameter:1,security:1})'
mongo --eval 'db.adminCommand({getParameter:1,net:1})'
mongo --eval 'db.adminCommand({getParameter:1,auditLog:1})'

# 验证服务运行用户
ps -p $(pgrep mongod) -o user=
4.2.2 认证测试
bash 复制代码
# 测试无认证连接(应失败)
mongo --eval 'db.version()' || echo "Authentication test passed (failed as expected)"

# 测试有效认证
mongo --username admin --password "StrongPassword123!" --authenticationDatabase admin

# 测试无效认证
mongo --username admin --password "invalid_password" --authenticationDatabase admin && echo "VULNERABLE: Invalid password worked"
4.2.3 审计日志验证
javascript 复制代码
// 验证审计日志记录
function verifyAuditLog() {
  // 执行测试操作
  db.getSiblingDB("test").sample.insertOne({ test: "audit" });
  
  // 检查是否记录
  const logEntry = db.getSiblingDB("admin").system.profile.findOne({
    "ns": "test.sample",
    "op": "insert"
  });
  
  if (!logEntry) {
    return "Audit log test FAILED: No entry found";
  }
  
  return "Audit log test PASSED: Entry found";
}

print(verifyAuditLog());

4.3 合规报告生成

javascript 复制代码
// generate-compliance-report.js
function generateComplianceReport() {
  const results = checkCISCompliance();
  const audit = analyzeAuditLogs();
  
  return {
    reportDate: new Date(),
    environment: "Production",
    cisVersion: "CIS MongoDB Benchmark v2.0.0",
    results: results,
    auditSummary: audit,
    recommendations: [
      "Implement quarterly security reviews",
      "Establish automated compliance monitoring",
      "Review user permissions monthly"
    ]
  };
}

// 生成并保存报告
const report = generateComplianceReport();
db.compliance.reports.insertOne(report);
printjson(report);

五、持续维护与改进

5.1 定期审查机制

5.1.1 自动化合规检查
bash 复制代码
# 每天运行合规检查
0 0 * * * /usr/local/bin/mongodb-cis-check.sh > /var/log/mongodb/cis-check.log
5.1.2 人工审核流程
markdown 复制代码
# CIS合规性季度审核流程

1. **准备阶段**(第1周)
   - 收集所有配置变更记录
   - 确定审核范围和重点

2. **执行阶段**(第2-3周)
   - 执行自动化检查
   - 进行手动验证
   - 识别配置偏差

3. **报告阶段**(第4周)
   - 编写审核报告
   - 确定修复计划
   - 获得管理层批准

4. **修复阶段**(第5-6周)
   - 实施配置修复
   - 验证修复效果
   - 更新合规文档

5.2 应对基准更新

5.2.1 关注CIS更新
  • 订阅CIS安全公告
  • 加入MongoDB安全邮件列表
  • 定期检查CIS网站
5.2.2 评估变更影响
javascript 复制代码
// cis-benchmark-compare.js
function compareBenchmarks(oldVersion, newVersion) {
  const oldControls = loadCISControls(oldVersion);
  const newControls = loadCISControls(newVersion);
  
  const changes = {
    added: [],
    modified: [],
    removed: []
  };
  
  // 比较控制项
  newControls.forEach(control => {
    if (!oldControls[control.id]) {
      changes.added.push(control);
    } else if (oldControls[control.id].content !== control.content) {
      changes.modified.push({
        id: control.id,
        old: oldControls[control.id],
        new: control
      });
    }
  });
  
  oldControls.forEach(control => {
    if (!newControls[control.id]) {
      changes.removed.push(control);
    }
  });
  
  return changes;
}

// 使用示例
const changes = compareBenchmarks("2.0.0", "2.1.0");
printjson(changes);
5.2.3 规划更新实施
markdown 复制代码
# CIS基准更新实施计划

| 项目 | 描述 | 负责人 | 时间线 |
|--------|----------|-----------|----------|
| 评估 | 分析新基准的影响 | Security Team | 1周 |
| 规划 | 制定实施计划 | DBA Team | 2周 |
| 测试 | 在测试环境验证 | QA Team | 3周 |
| 部署 | 在生产环境实施 | Operations | 4周 |
| 验证 | 确认符合性 | Security Team | 1周 |

5.3 持续改进策略

5.3.1 安全指标监控
指标 目标 监控频率
CIS符合率 100% 每日
高危漏洞 0 每周
审计日志覆盖率 100% 每日
权限变更 <5/周 每日
认证失败率 <1% 每小时
5.3.2 事件响应流程

认证失败
异常操作
数据泄露
检测安全事件
事件类型
临时封锁IP
暂停用户账户
激活应急响应
调查原因
修复漏洞
恢复服务
事件总结
流程改进

5.3.3 安全文化培养
  • 定期安全培训
  • 安全意识宣传活动
  • 安全最佳实践分享会
  • 安全挑战与奖励机制

六、结论与建议

6.1 关键实施建议

  1. 从基础开始:先实施L1控制项,再扩展到L2
  2. 自动化优先:将合规检查自动化,减少人为错误
  3. 文档化一切:详细记录配置和变更
  4. 定期验证:实施持续监控,而不仅仅是初始配置
  5. 最小权限原则:始终遵循最小权限原则

6.2 常见问题与解决方案

问题 原因 解决方案
认证启用后连接失败 客户端未配置认证 更新客户端连接字符串
TLS连接失败 证书问题 验证证书链完整性
审计日志过大 过滤器不精确 优化审计过滤器
性能下降 资源限制过严 适当调整资源参数
无法登录 密码错误 重置密码并验证

6.3 长期维护策略

  1. 持续评估:每季度进行完整安全评估
  2. 变更管理:建立严格的配置变更流程
  3. 技术更新:随MongoDB版本更新安全配置
  4. 安全测试:定期进行渗透测试
  5. 合规证明:为审计准备详细的合规文档

关键提示 :CIS基准不是"一次完成"的项目,而是持续的安全旅程。真正的安全需要持续的关注、评估和改进。安全不是目的地,而是持续的实践。

通过实施本指南中的CIS符合性措施,您的MongoDB部署将获得强大的安全基础,既能满足严格的合规性要求,又能提供高水平的安全保障。记住,安全不是零和游戏------通过系统化的方法,您可以创建一个既安全又高效的数据平台,为业务提供真正的价值。

附录:CIS基准实施检查表

markdown 复制代码
# CIS MongoDB基准实施检查表

## 服务配置
- [ ] 2.1.1 禁用REST和HTTP接口
- [ ] 2.1.3 限制资源使用(缓存大小、连接数等)
- [ ] 2.1.5 以非root用户运行
- [ ] 2.1.6 限制进程权限
- [ ] 2.1.7 禁用非必要功能

## 网络配置
- [ ] 2.2.1 限制网络暴露(bindIp)
- [ ] 2.2.2 配置系统防火墙
- [ ] 2.2.3 Config Server端口限制
- [ ] 2.2.4 Mongos端口限制
- [ ] 2.2.5 Shard Server端口限制

## 认证与授权
- [ ] 2.3.1 启用认证
- [ ] 2.3.2 使用SCRAM-SHA-256
- [ ] 2.3.3 最小权限原则
- [ ] 2.3.4 用户管理(密码策略、账户锁定等)
- [ ] 2.3.5 角色管理(分离职责)

## 加密配置
- [ ] 2.4.1 传输加密(TLS/SSL)
- [ ] 2.4.2 静态数据加密
- [ ] 2.4.3 证书管理(更新、轮换)

## 审计与监控
- [ ] 2.5.1 启用审计日志
- [ ] 2.5.2 保护审计日志
- [ ] 2.5.3 审计日志分析
- [ ] 2.5.4 监控异常行为
- [ ] 2.5.5 定期审查

## 管理与维护
- [ ] 3.1 安全培训
- [ ] 3.2 配置备份
- [ ] 3.3 安全测试
- [ ] 3.4 漏洞管理
- [ ] 3.5 合规证明

附录:常用CIS验证命令

bash 复制代码
# 检查认证是否启用
mongo --eval "db.adminCommand({getParameter:1,security:1}).security.authorization"

# 检查TLS配置
mongo --eval "db.adminCommand({getParameter:1,net:1}).net.ssl.mode"

# 检查审计日志配置
mongo --eval "db.adminCommand({getParameter:1,auditLog:1})"

# 检查MongoDB运行用户
ps -p $(pgrep mongod) -o user=
相关推荐
light blue bird1 小时前
MES/ERP报表大致化元素组排类查询
jvm·数据库·.net·ai大数据
xiaoye37082 小时前
动态代理的使用场景与适用时机
java·数据库·sql
椰猫子2 小时前
数据库MySQL
数据库
哈__2 小时前
告别复杂 SQL 性能瓶颈!金仓智能下推技术的实战解析
数据库·sql
源远流长jerry2 小时前
dpdk19.08编译问题解决方案
数据库·postgresql·sqlserver
微学AI2 小时前
复杂查询中 JOIN 条件下推失败导致的性能瓶颈-金仓数据库
数据库
cyforkk2 小时前
数据库里的隐形守卫:通俗易懂理解 RLS(行级安全)
数据库·安全
李子红了时2 小时前
Win10一键禁用自动更新和Windows Defender安全中心
windows·安全
zxrhhm2 小时前
Oracle一般而言standby redo日志文件组数要比primary数据库的online redo日志文件组数至少多一个,为什么?
数据库·oracle