ubuntu

Ubuntu上MariaDB的权限管理如何设置

小樊
46
2025-11-06 22:30:47
栏目: 云计算

Ubuntu上MariaDB权限管理设置指南

一、权限管理基础流程

MariaDB的权限管理遵循“用户识别→权限分配→权限生效”的核心逻辑,关键命令包括CREATE USER(创建用户)、GRANT(授予权限)、FLUSH PRIVILEGES(刷新生效)、REVOKE(撤销权限)、DROP USER(删除用户)。所有操作需通过root用户或具有GRANT OPTION权限的用户登录MariaDB执行。

二、登录MariaDB

使用root用户登录MariaDB(需输入root密码):

sudo mysql -u root -p

登录成功后进入MariaDB命令行界面(显示MariaDB [(none)]>)。

三、用户管理

1. 创建用户

使用CREATE USER语句创建用户,格式为'用户名'@'主机名'主机名决定用户可从哪些主机连接):

示例:

-- 创建本地用户(仅本机可登录)
CREATE USER 'dev_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
-- 创建远程用户(允许192.168.1.100访问)
CREATE USER 'remote_user'@'192.168.1.100' IDENTIFIED BY 'AnotherSecurePass!';
-- 创建任意主机用户(允许所有IP访问,生产环境不推荐)
CREATE USER 'global_user'@'%' IDENTIFIED BY 'CriticalPassword!';

注意:密码需包含大小写字母、数字和符号,长度≥8位。

2. 删除用户

使用DROP USER语句彻底删除用户(会自动回收其所有权限):

DROP USER 'dev_user'@'localhost';

提示:删除用户前无需手动撤销权限,DROP USER会自动处理。

3. 修改用户密码

使用ALTER USER语句修改密码(需指定新密码):

ALTER USER 'dev_user'@'localhost' IDENTIFIED BY 'NewSecurePassword456!';

建议:定期更换密码(尤其是具有高权限的用户)。

四、权限分配

1. 授予权限

使用GRANT语句为用户分配权限,格式为GRANT 权限类型 ON 数据库对象 TO '用户'@'主机'

分配权限后,需执行FLUSH PRIVILEGES使更改立即生效(或重启MariaDB服务)。

2. 查看权限

使用SHOW GRANTS语句查看用户的权限:

-- 查看dev_user@localhost的权限
SHOW GRANTS FOR 'dev_user'@'localhost';
-- 查看所有用户的权限(需root权限)
SELECT User, Host FROM mysql.user;

输出示例:

+--------------------------------------------------------------+
| Grants for dev_user@localhost                                |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO `dev_user`@`localhost`                 |
| GRANT SELECT, INSERT ON `mydb`.* TO `dev_user`@`localhost`   |
+--------------------------------------------------------------+

五、权限撤销

使用REVOKE语句撤销用户的特定权限,格式为REVOKE 权限类型 ON 数据库对象 FROM '用户'@'主机'

撤销后需执行FLUSH PRIVILEGES使更改生效。

六、安全最佳实践

  1. 最小权限原则:仅授予用户完成工作所需的最小权限(如应用用户仅需SELECTINSERT,无需DROP);
  2. 限制远程访问:优先使用localhost,若需远程访问,明确指定IP范围(如192.168.1.%);
  3. 强密码策略:使用复杂密码(混合大小写、数字、符号),定期更换;
  4. 定期审计:通过SELECT User, Host FROM mysql.user;查看所有用户,移除无用账户;
  5. 防火墙配置:开放MariaDB端口(默认3306),但限制访问IP(如仅允许公司IP访问)。

0
看了该问题的人还看了