如何配置服务器数据库权限?服务器权限设置最佳实践

核心配置步骤

登录数据库服务器

   # MySQL/MariaDB
   mysql -u root -p
   # PostgreSQL
   sudo -u postgres psql
   # MongoDB
   mongo --username admin --password --authenticationDatabase admin

创建专用数据库用户(避免使用 root)

   -- MySQL
   CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPassword123!';
   -- PostgreSQL
   CREATE USER app_user WITH PASSWORD 'StrongPassword123!';
   -- MongoDB
   use admin
   db.createUser({user: "app_user", pwd: "StrongPassword123!", roles: []})

创建数据库并授权

   -- MySQL
   CREATE DATABASE app_db;
   GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO 'app_user'@'%';
   -- PostgreSQL
   CREATE DATABASE app_db;
   GRANT CONNECT ON DATABASE app_db TO app_user;
   c app_db
   GRANT USAGE ON SCHEMA public TO app_user;
   GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user;
   -- MongoDB
   use app_db
   db.grantRolesToUser("app_user", [{role: "readWrite", db: "app_db"}])

刷新权限

   -- MySQL
   FLUSH PRIVILEGES;
   -- PostgreSQL (无需刷新)
   -- MongoDB (立即生效)

验证权限

   -- MySQL
   SHOW GRANTS FOR 'app_user'@'%';
   -- PostgreSQL
   du app_user
   -- MongoDB
   db.getUser("app_user")

关键安全实践

  1. 最小权限原则

    服务器配置数据库权限

    • 只授予必要权限(如 SELECT/INSERT),避免 ALL PRIVILEGES
    • 示例:拒绝删表权限
      -- MySQL
      REVOKE DROP ON app_db.* FROM 'app_user'@'%';
  2. 访问来源限制

    • 绑定用户 IP(替换 为具体 IP):
      -- MySQL
      CREATE USER 'app_user'@'192.168.1.100' IDENTIFIED BY 'password';
  3. 加密连接

    服务器配置数据库权限

    • 强制使用 SSL/TLS(MySQL):
      ALTER USER 'app_user'@'%' REQUIRE SSL;
  4. 定期审计

    • 检查异常登录:
      # MySQL
      SELECT * FROM mysql.general_log WHERE command_type = 'Connect';

防火墙配置

仅允许特定 IP 访问数据库端口:

服务器配置数据库权限

# MySQL (3306)
sudo ufw allow from 192.168.1.100 to any port 3306
# PostgreSQL (5432)
sudo ufw allow from 192.168.1.100 to any port 5432
# MongoDB (27017)
sudo ufw allow from 192.168.1.100 to any port 27017

不同场景权限示例

场景 MySQL 权限命令 PostgreSQL 权限命令
只读用户 GRANT SELECT ON db.* TO 'user'@'%'; GRANT SELECT ON ALL TABLES TO user;
读写用户 GRANT SELECT, INSERT, UPDATE, DELETE ... GRANT SELECT, INSERT, UPDATE, DELETE...
禁止删除数据 REVOKE DELETE ON db.* FROM 'user'@'%'; REVOKE DELETE ON ALL TABLES FROM user;

故障排查

  1. 连接被拒绝
    • 检查防火墙、数据库绑定 IP(bind-address 是否设为 0.0.0)。
  2. 权限不生效
    • 确保执行 FLUSH PRIVILEGES;(MySQL)。
  3. 用户无法访问表
    • PostgreSQL 需额外授权 Schema:
      GRANT USAGE ON SCHEMA public TO user;

重要提示:生产环境操作前务必备份数据!使用强密码并定期轮换。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/289466.html

(0)
上一篇 2026年2月9日 17:43
下一篇 2026年2月9日 17:47

相关推荐

  • 服务器频繁宕机或响应慢?一文教你高效解决服务器问题!

    系统化诊断与优化实践随着企业数字化转型加速,服务器作为IT基础设施的核心载体,其稳定性、性能与安全性直接决定业务连续性、数据安全及用户体验,服务器问题(如性能瓶颈、安全漏洞、故障中断等)若处理不当,可能导致业务停摆、数据泄露或客户流失,本文结合行业实践与酷番云云产品经验,从性能优化、安全防护、高可用设计三方面系……

    2026年1月17日
    0480
  • 如何高效使用服务器配置查询软件?揭秘最佳配置方案与使用技巧?

    运维工程师的“透视眼”与决策基石在数据中心的心脏地带,服务器如同沉默的巨人,承载着企业至关重要的业务与应用,巨人的内部构造是否健康?资源是否被高效利用?潜在瓶颈藏身何处?要精准回答这些问题,服务器配置查询软件已从简单的“信息读取器”跃升为现代IT运维不可或缺的“透视眼”与决策中枢,它不仅是基础信息的窗口,更是保……

    2026年2月4日
    0280
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 服务器配置规则的具体位置在哪里?系统设置中是否隐藏了相关配置选项?

    服务器配置规则是确保服务器系统稳定、高效运行的基础,明确其来源对运维人员至关重要,以下是关于服务器配置规则查找与应用的详细说明,结合权威原则与实际案例,帮助用户系统掌握配置规则的核心来源,操作系统官方文档:基础配置规则的核心来源操作系统厂商提供的官方文档是配置规则最权威的依据,涵盖了系统核心组件的参数说明、限制……

    2026年2月2日
    0220
  • 服务器重启后可能出现的后果及影响具体有哪些?

    服务器重启作为IT运维中的常规操作,其背后隐藏着多维度后果,从数据层面到业务连续性,均可能受到冲击,理解这些后果,不仅能帮助运维人员提前规避风险,也能为企业提供更可靠的系统保障,本文将从专业角度深入剖析服务器重启后的核心后果,并结合实际案例与最佳实践,为读者提供全面参考,服务器重启的定义与常见场景服务器重启是指……

    2026年1月28日
    0250

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注