Ubuntu MariaDB权限设置指南
导读:Ubuntu MariaDB权限设置指南 一 基础准备与登录 安装与启动 更新软件源并安装:sudo apt update && sudo apt install mariadb-server 启动并设置开机自启:sud...
Ubuntu MariaDB权限设置指南
一 基础准备与登录
- 安装与启动
- 更新软件源并安装:sudo apt update & & sudo apt install mariadb-server
- 启动并设置开机自启:sudo systemctl start mariadb & & sudo systemctl enable mariadb
- 安全初始化
- 运行安全向导:sudo mysql_secure_installation(可移除匿名用户、禁止远程 root 登录、删除测试库等)
- 登录数据库
- 本地套接字登录(Ubuntu 常见):sudo mariadb
- 指定账户登录:mysql -u root -p
- 备注
- 在 Ubuntu 上,MariaDB 的 root 账户默认常使用 auth_socket 插件进行本地认证;若需密码登录,可另行创建一个管理员账户再使用密码认证。
二 用户与主机匹配
- 创建用户语法
- CREATE USER ‘username’@‘host’ IDENTIFIED BY ‘password’;
- 主机部分说明
- localhost:仅本机通过 Unix 套接字连接
- ‘192.168.1.100’:仅允许该 IP 连接
- ‘%’:任意主机(谨慎使用)
- 示例
- 本地只读用户:CREATE USER ‘reader’@‘localhost’ IDENTIFIED BY ‘StrongPass!’;
- 指定网段:CREATE USER ‘app’@‘192.168.10.%’ IDENTIFIED BY ‘StrongPass!’;
- 远程用户:CREATE USER ‘remote’@‘%’ IDENTIFIED BY ‘StrongPass!’;
- 重要提示
- 授权时的 ‘user’@‘host’ 必须与实际创建时一致,否则授权无效或报错。
三 授权与撤销常用命令
- 授予权限
- 全局权限:GRANT ALL PRIVILEGES ON . TO ‘admin’@‘localhost’ WITH GRANT OPTION;
- 单库全部:GRANT ALL PRIVILEGES ON mydb. TO ‘app’@‘192.168.10.%’; *
- 单库读写:GRANT SELECT, INSERT, UPDATE, DELETE ON mydb. TO ‘app’@‘192.168.10.%’; *
- 单表权限:GRANT SELECT, INSERT ON mydb.orders TO ‘app’@‘localhost’;
- 撤销权限
- 撤销单库全部:REVOKE ALL PRIVILEGES ON mydb. FROM ‘app’@‘192.168.10.%’; *
- 撤销单表权限:REVOKE SELECT, INSERT ON mydb.orders FROM ‘app’@‘localhost’;
- 使权限生效
- FLUSH PRIVILEGES;
- 角色(MariaDB 10.2+)
- 创建只读角色并授予:CREATE ROLE ‘read_role’; GRANT SELECT ON mydb. TO ‘read_role’; *
- 将角色授予用户:GRANT ‘read_role’ TO ‘app’@‘192.168.10.%’;
- 查看与删除
- 查看权限:SHOW GRANTS FOR ‘app’@‘192.168.10.%’;
- 删除用户:DROP USER ‘app’@‘192.168.10.%’;
- 最小权限原则
- 应用账户避免使用 ALL PRIVILEGES 与 WITH GRANT OPTION,按需授予。
四 远程访问与防火墙
- 配置监听地址
- 编辑配置文件:sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
- 将 bind-address 改为 0.0.0.0(允许来自外部的监听),保存后重启:sudo systemctl restart mariadb
- 授权远程账户
- 建议精确主机或网段:GRANT ALL PRIVILEGES ON mydb. TO ‘remote’@‘203.0.113.%’ IDENTIFIED BY ‘StrongPass!’; *
- 刷新权限:FLUSH PRIVILEGES;
- 防火墙放行
- UFW:sudo ufw allow 3306/tcp
- firewalld:sudo firewall-cmd --add-port=3306/tcp --permanent & & sudo firewall-cmd --reload
- 安全建议
- 避免使用 ‘%’ 开放到全网;优先限定为固定 IP/网段,并配合强密码与最小权限。
五 文件系统与运维安全
- 数据目录与配置权限
- 数据目录:sudo chown -R mysql:mysql /var/lib/mysql
- 配置目录:sudo chown -R root:root /etc/mysql & & sudo chmod -R 755 /etc/mysql
- 验证与审计
- 查看用户列表:SELECT User, Host FROM mysql.user;
- 查看当前登录用户:SELECT USER(), CURRENT_USER();
- 安全建议
- 禁止在生产环境使用 root 远程登录;为运维或应用分别创建最小权限账户;定期清理无用账户与权限。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu MariaDB权限设置指南
本文地址: https://pptw.com/jishu/748902.html
