首页主机资讯Linux MariaDB的权限设置如何操作

Linux MariaDB的权限设置如何操作

时间2025-10-29 10:36:03发布访客分类主机资讯浏览1116
导读:Linux环境下MariaDB权限设置操作指南 1. 登录MariaDB服务器 使用root用户或具有sudo权限的用户登录MariaDB控制台: sudo mysql -u root -p 输入root密码后进入MariaDB命令行界面...

Linux环境下MariaDB权限设置操作指南

1. 登录MariaDB服务器

使用root用户或具有sudo权限的用户登录MariaDB控制台:

sudo mysql -u root -p

输入root密码后进入MariaDB命令行界面(提示符为MariaDB [(none)]> )。

2. 创建数据库用户

通过CREATE USER语句创建用户,需指定用户名登录主机(决定用户可从哪些主机连接)和密码

  • 本地用户(仅允许从本机登录):
    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!';
        
    

注意username为自定义用户名,StrongPassword123!需替换为包含大小写字母、数字和符号的复杂密码。

3. 授予用户权限

使用GRANT语句为用户分配权限,支持细粒度权限(如SELECTINSERT)和全局权限(如ALL PRIVILEGES):

  • 授予特定数据库的特定权限(推荐):
    GRANT SELECT, INSERT, UPDATE ON database_name.table_name TO 'username'@'host';
        
    
    示例:授予用户johnmydb数据库所有表的SELECTINSERTUPDATE权限(仅本地登录):
    GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'john'@'localhost';
        
    
  • 授予整个数据库的所有权限
    GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';
        
    
    示例:授予用户johnmydb数据库的所有权限:
    GRANT ALL PRIVILEGES ON mydb.* TO 'john'@'localhost';
        
    
  • 授予全局管理权限(如创建数据库、用户,谨慎使用):
    GRANT CREATE USER, CREATE DATABASE ON *.* TO 'username'@'host';
        
    
  • 允许用户授权他人(需添加WITH GRANT OPTION):
    GRANT ALL PRIVILEGES ON *.* TO 'username'@'host' WITH GRANT OPTION;
        
    

关键:权限设置完成后,必须执行FLUSH PRIVILEGES; 使更改立即生效。

4. 查看用户权限

通过SHOW GRANTS语句查看用户的权限详情:

  • 查看指定用户的权限:
    SHOW GRANTS FOR 'username'@'host';
        
    
    示例:查看用户john在本地登录的权限:
    SHOW GRANTS FOR 'john'@'localhost';
        
    
  • 查看所有用户及权限(需root权限):
    SELECT User, Host FROM mysql.user;
          -- 查看所有用户
    SELECT * FROM mysql.db WHERE User='username';
          -- 查看指定用户的权限详情
    

5. 撤销用户权限

使用REVOKE语句撤销用户的特定权限,必须与授权时的权限范围一致

  • 撤销特定数据库的特定权限:
    REVOKE SELECT, INSERT ON database_name.table_name FROM 'username'@'host';
        
    
    示例:撤销用户johnmydb数据库的SELECT权限:
    REVOKE SELECT ON mydb.* FROM 'john'@'localhost';
        
    
  • 撤销整个数据库的所有权限:
    REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host';
        
    
  • 撤销所有权限:
    REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'host';
        
    

注意:撤销权限后需执行FLUSH PRIVILEGES; 使更改生效。

6. 删除用户

使用DROP USER语句删除用户(需先撤销其所有权限):

DROP USER 'username'@'host';
    

示例:删除用户john(本地登录):

DROP USER 'john'@'localhost';
    

提示:删除用户前,建议先备份重要数据。

7. 安全注意事项

  • 最小权限原则:仅授予用户完成工作所需的最低权限(如应用用户仅需SELECTINSERT权限,避免使用ALL PRIVILEGES)。
  • 限制远程访问:优先使用localhost,若需远程访问,将host设置为具体IP(如192.168.1.100),而非%
  • 强密码策略:使用包含大小写字母、数字和符号的复杂密码(长度≥8位),定期更换密码。
  • 定期审计:通过SELECT User, Host FROM mysql.user; 查看所有用户,移除无用账户(如测试账户)。

以上步骤覆盖了Linux环境下MariaDB权限设置的核心操作,可根据实际需求调整权限范围,确保数据库安全。

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


若转载请注明出处: Linux MariaDB的权限设置如何操作
本文地址: https://pptw.com/jishu/737546.html
如何使用索引优化Linux MariaDB 怎样处理Linux MariaDB的锁等待问题

游客 回复需填写必要信息