Debian 上 MariaDB 权限管理实操指南
一 基础准备与登录
sudo apt update && sudo apt install mariadb-server mariadb-clientsystemctl status mariadbsudo mysql_secure_installationsudo mysql -u root -pmysql -u <用户> -p -h <服务器IP>(需提前为用户授予远程来源主机权限)二 核心概念与权限级别
三 常用操作命令清单
CREATE USER 'app'@'localhost' IDENTIFIED BY 'StrongPass!';CREATE USER 'app'@'192.168.10.%' IDENTIFIED BY 'StrongPass!';DROP USER 'app'@'192.168.10.%';GRANT SELECT ON sales.* TO 'rep'@'%';GRANT SELECT,INSERT,UPDATE,DELETE ON sales.* TO 'app'@'192.168.10.%';GRANT ALL PRIVILEGES ON app_db.* TO 'app'@'%';GRANT CREATE USER, CREATE DATABASE, RELOAD, SUPER ON *.* TO 'admin'@'localhost';GRANT 'read_role' TO 'app'@'%';REVOKE ALL PRIVILEGES ON sales.* FROM 'app'@'192.168.10.%';REVOKE SUPER, RELOAD ON *.* FROM 'admin'@'localhost';SHOW GRANTS FOR 'app'@'192.168.10.%';SELECT User,Host FROM mysql.user;FLUSH PRIVILEGES;SET PASSWORD FOR 'app'@'%' = PASSWORD('NewPass!');SET PASSWORD = PASSWORD('NewPass!');CREATE ROLE 'read_role';GRANT SELECT ON sales.* TO 'read_role';REVOKE 'read_role' FROM 'app'@'%';四 远程访问与防火墙
CREATE USER 'app'@'192.168.10.%' IDENTIFIED BY 'StrongPass!';GRANT SELECT,INSERT,UPDATE,DELETE ON app_db.* TO 'app'@'192.168.10.%';FLUSH PRIVILEGES;sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf#bind-address = 127.0.0.1(允许监听所有地址;如仅需内网,可改为内网地址)sudo systemctl restart mariadbsudo ufw allow 3306/tcpsudo nft add rule ip filter input tcp dport 3306 acceptmysql -u app -p -h <服务器IP>(确保来源 IP 在授权范围内)五 安全与最佳实践
SHOW GRANTS 与 SELECT User,Host FROM mysql.user; 核查。mysql_secure_installation,并按需禁用 root 远程登录。