Ubuntu MariaDB权限设置详解
导读:Ubuntu MariaDB权限设置详解 一、权限设置前置准备 在Ubuntu系统上管理MariaDB权限前,需完成以下基础配置: 安装MariaDB:通过sudo apt update && sudo apt insta...
Ubuntu MariaDB权限设置详解
一、权限设置前置准备
在Ubuntu系统上管理MariaDB权限前,需完成以下基础配置:
- 安装MariaDB:通过
sudo apt update & & sudo apt install mariadb-server mariadb-client命令安装MariaDB服务端及客户端。 - 启动服务:使用
sudo systemctl start mariadb启动服务,并通过sudo systemctl enable mariadb设置开机自启。 - 运行安全向导:执行
sudo mysql_secure_installation,完成root密码设置、删除匿名用户、禁止root远程登录等安全配置。
二、登录MariaDB
使用root用户(或具有sudo权限的用户)登录MariaDB控制台:
sudo mysql -u root -p
输入密码后进入MariaDB命令行界面(提示符为MariaDB [(none)]>
)。
三、创建数据库用户
创建用户时需指定用户名、主机限制(决定登录来源)和密码:
- 本地用户(仅允许从本机登录):
CREATE USER 'username'@'localhost' IDENTIFIED BY 'StrongPassword123!'; - 远程用户(允许从指定IP登录,如
192.168.1.100):CREATE USER 'username'@'192.168.1.100' IDENTIFIED BY 'StrongPassword123!'; - 任意主机用户(允许从任何IP登录,生产环境慎用):
CREATE USER 'username'@'%' IDENTIFIED BY 'StrongPassword123!';
注意:localhost表示本机,%表示任意主机;密码需使用大小写字母、数字、符号组合,避免弱密码。
四、分配权限
根据用户需求分配不同级别的权限,常见场景如下:
1. 授予特定数据库权限
- 所有权限(SELECT、INSERT、UPDATE、DELETE等):
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host'; - 特定权限(如仅允许查询和插入):
GRANT SELECT, INSERT ON database_name.* TO 'username'@'host';
2. 授予全局权限
- 只读权限(适用于监控或备份用户):
GRANT SELECT ON *.* TO 'username'@'host'; - 管理权限(如创建数据库、用户,谨慎使用):
GRANT CREATE USER, CREATE DATABASE ON *.* TO 'username'@'host';
3. 角色管理(MariaDB 10.2+)
- 创建角色并授予权限:
CREATE ROLE 'read_only_role'; GRANT SELECT ON database_name.* TO 'read_only_role'; - 将角色授予用户:
GRANT 'read_only_role' TO 'username'@'host';
分配权限后,需执行FLUSH PRIVILEGES;
使更改立即生效。
五、查看用户权限
- 查看当前登录用户:
SELECT USER(); - 查看所有用户:
SELECT DISTINCT User, Host FROM mysql.user; - 查看指定用户权限:
示例:查看SHOW GRANTS FOR 'username'@'host';john@localhost的权限:SHOW GRANTS FOR 'john'@'localhost';
六、撤销权限
- 撤销特定权限(如撤销
db1数据库的SELECT权限):REVOKE SELECT ON db1.* FROM 'username'@'host'; - 撤销所有权限:
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host';
撤销后需执行FLUSH PRIVILEGES;
使更改生效。
七、删除用户
删除用户前需先撤销其所有权限,再执行删除命令:
DROP USER 'username'@'host';
示例:删除john@localhost用户:
DROP USER 'john'@'localhost';
八、权限设置注意事项
- 最小权限原则:仅授予用户完成任务所需的最小权限(如应用用户仅需
SELECT、INSERT权限,避免使用ALL PRIVILEGES)。 - 远程访问安全:若需允许远程连接,将
host设置为具体IP(如192.168.1.100),而非%;并确保Ubuntu防火墙开放3306端口(sudo ufw allow 3306/tcp)。 - 密码管理:定期更换用户密码,避免密码泄露;root用户禁止远程登录(通过
sudo mysql_secure_installation已默认禁用)。 - 角色简化管理:MariaDB 10.2+支持角色功能,可将常用权限组合为角色,便于批量分配给用户。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu MariaDB权限设置详解
本文地址: https://pptw.com/jishu/743099.html
