Debian 上 MariaDB 权限管理实操指南
一 基础安全与初始化
sudo mysql_secure_installation二 用户与权限的核心概念
三 常用操作命令清单
sudo mysql -u root -pCREATE USER 'app'@'localhost' IDENTIFIED BY 'StrongPass!';CREATE USER 'app'@'192.168.1.%' IDENTIFIED BY 'StrongPass!';CREATE USER 'app'@'%' IDENTIFIED BY 'StrongPass!';GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app'@'192.168.1.%';GRANT ALL PRIVILEGES ON mydb.* TO 'app'@'192.168.1.%';GRANT CREATE USER, CREATE DATABASE ON *.* TO 'admin'@'localhost';FLUSH PRIVILEGES;SHOW GRANTS FOR 'app'@'192.168.1.%';REVOKE ALL PRIVILEGES ON mydb.* FROM 'app'@'192.168.1.%';SET PASSWORD FOR 'app'@'192.168.1.%' = PASSWORD('NewPass!');DROP USER 'app'@'192.168.1.%';CREATE ROLE 'read_role';GRANT SELECT ON mydb.* TO 'read_role';GRANT 'read_role' TO 'app'@'192.168.1.%';四 远程访问与网络配置
CREATE USER 'remote'@'192.168.1.%' IDENTIFIED BY 'StrongPass!';GRANT ALL PRIVILEGES ON appdb.* TO 'remote'@'192.168.1.%';bind-address = 127.0.0.1 为 bind-address = 0.0.0.0(或注释该行以监听所有地址)。sudo ufw allow 3306/tcp)。五 排错与最佳实践
SHOW PROCESSLIST;(定位异常来源或长时间会话)。mydb.*),否则可能看似“没回收”。sudo systemctl stop mariadbsudo mysqld_safe --skip-grant-tables &mysql → UPDATE mysql.user SET Password=PASSWORD('NEWPASS') WHERE User='root' AND Host='localhost'; → FLUSH PRIVILEGES;sudo mysqladmin -u root -p shutdown → sudo systemctl start mariadbSELECT User,Host FROM mysql.user;、SHOW GRANTS FOR 'user'@'host';。