温馨提示×

如何设置Linux MariaDB权限

小樊
61
2026-06-30 14:50:22
栏目: 云计算

在 Linux 上设置 MariaDB 用户权限,通常包括 创建用户、授权、刷新权限、删除权限 等。下面按常见场景给你一个完整说明(适用于大多数 Linux 发行版,如 CentOS / Rocky / Alma / Ubuntu / Debian)。


一、登录 MariaDB

mysql -u root -p

输入 root 密码后进入 MariaDB 交互界面。


二、查看现有用户和权限

SELECT user, host FROM mysql.user;
SHOW GRANTS;
SHOW GRANTS FOR '用户名'@'主机';

三、创建 MariaDB 用户

1️⃣ 创建本地用户

CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password123';

2️⃣ 创建允许远程连接的用户

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;

六、修改用户密码

方法 1(推荐)

ALTER USER 'testuser'@'localhost' IDENTIFIED BY 'newpassword';

方法 2(旧版本)

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';

九、远程访问权限相关设置(常见问题)

1️⃣ 确认 MariaDB 监听地址

vim /etc/my.cnf
# 或
vim /etc/mysql/mariadb.conf.d/50-server.cnf

确保:

bind-address = 0.0.0.0

然后重启:

systemctl restart mariadb

2️⃣ 防火墙放行 3306

# 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,不用 %
✅ 强密码


如果你愿意,可以告诉我:

  • ✅ 是 本地权限 还是 远程访问
  • ✅ 使用场景(Web / 运维 / 开发)
  • ✅ MariaDB 版本

我可以给你 一条最合适、最安全的配置方案

0