首页主机资讯Debian MariaDB用户权限设置指南

Debian MariaDB用户权限设置指南

时间2025-11-19 22:18:04发布访客分类主机资讯浏览940
导读:Debian MariaDB 用户权限设置指南 一 环境准备与登录 安装与启动 更新软件源并安装:sudo apt update && sudo apt install mariadb-server -y 启动并设置开机...

Debian MariaDB 用户权限设置指南

一 环境准备与登录

  • 安装与启动
    • 更新软件源并安装:sudo apt update & & sudo apt install mariadb-server -y
    • 启动并设置开机自启:sudo systemctl start mariadb & & sudo systemctl enable mariadb
    • 运行安全脚本:sudo mysql_secure_installation(设置 root 密码、删除匿名用户、禁止 root 远程登录等)
  • 登录数据库
    • 本地 root 登录:sudo mysql -u root -p
    • 某些 Debian 9 环境可能出现 ERROR 1698 (28000),可直接用系统 root 执行 sudo mysql 进入;如需密码登录,可参考 /etc/mysql/debian.cnf 中的凭据或改用 sudo 方式。

二 用户与权限核心操作

  • 创建用户(按来源主机区分)
    • 本地仅:CREATE USER ‘app’@‘localhost’ IDENTIFIED BY ‘StrongPass!’;
    • 指定网段:CREATE USER ‘app’@‘192.168.1.%’ IDENTIFIED BY ‘StrongPass!’;
    • 任意主机(谨慎):CREATE USER ‘app’@‘%’ IDENTIFIED BY ‘StrongPass!’;
  • 授予权限(最小权限原则)
    • 单库全部:GRANT ALL PRIVILEGES ON mydb. TO ‘app’@‘192.168.1.%’; *
    • 单库读写:GRANT SELECT, INSERT, UPDATE, DELETE ON mydb. TO ‘app’@‘localhost’; *
    • 全局只读(谨慎):GRANT SELECT ON . TO ‘readonly’@‘%’;
    • 管理类(谨慎):GRANT CREATE USER, CREATE DATABASE ON . TO ‘admin’@‘localhost’;
  • 刷新权限:FLUSH PRIVILEGES;
  • 查看与撤销
    • 查看权限:SHOW GRANTS FOR ‘app’@‘192.168.1.%’;
    • 撤销权限:REVOKE INSERT, UPDATE ON mydb. FROM ‘app’@‘localhost’; *
    • 删除用户:DROP USER ‘app’@‘%’;
  • 角色(MariaDB 10.2+
    • 创建角色:CREATE ROLE ‘read_role’;
    • 给角色授权:GRANT SELECT ON mydb. TO ‘read_role’; *
    • 授予用户:GRANT ‘read_role’ TO ‘app’@‘localhost’;

三 远程访问与网络配置

  • 修改绑定地址
    • 编辑:sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
    • bind-address = 127.0.0.1 改为 bind-address = 0.0.0.0(或注释该行以监听所有地址)
    • 可选:更改端口(如 3306 → 33606),注意防火墙与安全组策略
  • 重启服务:sudo systemctl restart mariadb
  • 防火墙与云安全组
    • 开放 3306(或自定义端口),仅允许可信来源网段
  • 创建远程用户并授权
    • 示例:CREATE USER ‘remote’@‘203.0.113.10’ IDENTIFIED BY ‘StrongPass!’;
    • 授权:GRANT ALL PRIVILEGES ON mydb. TO ‘remote’@‘203.0.113.10’; *
    • 刷新:FLUSH PRIVILEGES;
  • 连接测试
    • 远程:mysql -u remote -p -h YOUR_SERVER_IP -P 3306

四 安全加固与最佳实践

  • 禁止 root 远程登录,应用使用专用账户与最小权限
  • 避免使用 ‘%’ 通配,优先限定为 localhost 或明确的 IP/网段
  • 使用强密码策略(长度 ≥ 12,包含大小写字母、数字与符号)
  • 定期清理无用账户与过期权限,变更后及时 FLUSH PRIVILEGES;
  • 远程仅开放必要端口,配合防火墙/安全组白名单。

五 常见问题与故障排查

  • 登录被拒
    • 核对用户名与 Host 是否匹配(如 ‘app’@‘localhost’‘app’@‘%’ 不同)
    • 确认密码正确,必要时重置:ALTER USER ‘app’@‘localhost’ IDENTIFIED BY ‘NewPass!’; FLUSH PRIVILEGES;
  • 忘记 root 密码
    • 停止服务:sudo systemctl stop mariadb
    • 无权限模式启动:sudo mysqld_safe --skip-grant-tables &
    • 登录并修改:UPDATE mysql.user SET password=PASSWORD(‘NEW-PASSWORD’) WHERE User=‘root’; FLUSH PRIVILEGES;
    • 关闭无权限进程并正常启动:sudo mysqladmin -u root -p shutdownsudo systemctl start mariadb
  • 权限未生效
    • 执行:FLUSH PRIVILEGES;
    • 复核账户 Host 与授权范围是否一致
  • 远程连不通
    • 核对 bind-address、端口、防火墙/云安全组、用户 Host 是否为客户端 IP 或网段。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian MariaDB用户权限设置指南
本文地址: https://pptw.com/jishu/751645.html
Debian MariaDB日志管理方法 Debian MariaDB集群部署方案

游客 回复需填写必要信息