首页主机资讯Ubuntu MariaDB权限设置详解

Ubuntu MariaDB权限设置详解

时间2025-11-05 17:27:04发布访客分类主机资讯浏览1371
导读:Ubuntu MariaDB权限设置详解 一、权限设置前置准备 在Ubuntu系统上管理MariaDB权限前,需完成以下基础配置: 安装MariaDB:通过sudo apt update && sudo apt insta...

Ubuntu MariaDB权限设置详解

一、权限设置前置准备

在Ubuntu系统上管理MariaDB权限前,需完成以下基础配置:

  1. 安装MariaDB:通过sudo apt update & & sudo apt install mariadb-server mariadb-client命令安装MariaDB服务端及客户端。
  2. 启动服务:使用sudo systemctl start mariadb启动服务,并通过sudo systemctl enable mariadb设置开机自启。
  3. 运行安全向导:执行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';
    

八、权限设置注意事项

  1. 最小权限原则:仅授予用户完成任务所需的最小权限(如应用用户仅需SELECTINSERT权限,避免使用ALL PRIVILEGES)。
  2. 远程访问安全:若需允许远程连接,将host设置为具体IP(如192.168.1.100),而非%;并确保Ubuntu防火墙开放3306端口(sudo ufw allow 3306/tcp)。
  3. 密码管理:定期更换用户密码,避免密码泄露;root用户禁止远程登录(通过sudo mysql_secure_installation已默认禁用)。
  4. 角色简化管理:MariaDB 10.2+支持角色功能,可将常用权限组合为角色,便于批量分配给用户。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu MariaDB权限设置详解
本文地址: https://pptw.com/jishu/743099.html
Ubuntu MariaDB索引使用指南 Ubuntu MariaDB网络连接问题解决

游客 回复需填写必要信息