在 Linux 上设置 MariaDB 用户权限,通常包括 创建用户、授权、刷新权限、删除权限 等。下面按常见场景给你一个完整说明(适用于大多数 Linux 发行版,如 CentOS / Rocky / Alma / Ubuntu / Debian)。
mysql -u root -p
输入 root 密码后进入 MariaDB 交互界面。
SELECT user, host FROM mysql.user;
SHOW GRANTS;
SHOW GRANTS FOR '用户名'@'主机';
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password123';
CREATE USER 'testuser'@'%' IDENTIFIED BY 'password123';
%表示任意 IP(生产环境建议仅指定 IP)
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE
ON testdb.*
TO 'testuser'@'localhost';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
ALTER USER 'testuser'@'localhost' IDENTIFIED BY 'newpassword';
SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD('newpassword');
REVOKE DELETE ON testdb.* FROM 'testuser'@'localhost';
撤销所有权限:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'testuser'@'localhost';
DROP USER 'testuser'@'localhost';
vim /etc/my.cnf
# 或
vim /etc/mysql/mariadb.conf.d/50-server.cnf
确保:
bind-address = 0.0.0.0
然后重启:
systemctl restart mariadb
# firewalld
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
# ufw
ufw allow 3306
| 权限 | 说明 |
|---|---|
| ALL | 所有权限 |
| SELECT | 查询 |
| INSERT | 插入 |
| UPDATE | 更新 |
| DELETE | 删除 |
| CREATE | 创建表 |
| DROP | 删除表 |
| GRANT OPTION | 授权给其他用户 |
✅ 不用 root 远程连接
✅ 每个应用单独用户
✅ 最小权限原则
✅ 指定 IP,不用 %
✅ 强密码
如果你愿意,可以告诉我:
我可以给你 一条最合适、最安全的配置方案。