首页主机资讯Ubuntu上MariaDB的权限管理如何设置

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

时间2025-11-07 15:58:05发布访客分类主机资讯浏览325
导读:Ubuntu上MariaDB权限管理设置指南 一、权限管理基础流程 MariaDB的权限管理遵循“用户识别→权限分配→权限生效”的核心逻辑,关键命令包括CREATE USER(创建用户)、GRANT(授予权限)、FLUSH PRIVILEG...

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语句创建用户,格式为'用户名'@'主机名'主机名决定用户可从哪些主机连接):

  • 本地登录(仅本机):localhost
  • 远程登录(指定IP):192.168.1.100
  • 任意主机(谨慎使用):%

示例:

-- 创建本地用户(仅本机可登录)
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 '用户'@'主机'

  • 特定权限(推荐):仅授予用户需要的权限(如SELECTINSERT);
    -- 授予dev_user对mydb数据库的所有表的SELECT、INSERT权限
    GRANT SELECT, INSERT ON mydb.* TO 'dev_user'@'localhost';
        
    
  • 所有权限(谨慎使用):授予用户对数据库/所有数据库的全部权限(如ALL PRIVILEGES);
    -- 授予dev_user对mydb数据库的所有权限
    GRANT ALL PRIVILEGES ON mydb.* TO 'dev_user'@'localhost';
        
    -- 授予global_user对所有数据库的所有权限(生产环境禁用)
    GRANT ALL PRIVILEGES ON *.* TO 'global_user'@'%';
        
    
  • 管理权限:授予用户创建数据库/用户的权限(仅root或管理员使用);
    GRANT CREATE USER, CREATE DATABASE ON *.* TO 'admin_user'@'localhost';
        
    
  • 角色管理(MariaDB 10.2+):通过角色简化权限分配;
    -- 创建角色并授予权限
    CREATE ROLE 'read_only_role';
        
    GRANT SELECT ON mydb.* TO 'read_only_role';
        
    -- 将角色授予用户
    GRANT 'read_only_role' TO 'dev_user'@'localhost';
        
    

分配权限后,需执行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 '用户'@'主机'

  • 撤销特定权限
    -- 撤销dev_user对mydb数据库的INSERT权限
    REVOKE INSERT ON mydb.* FROM 'dev_user'@'localhost';
        
    
  • 撤销所有权限
    -- 撤销dev_user对mydb数据库的所有权限
    REVOKE ALL PRIVILEGES ON mydb.* FROM 'dev_user'@'localhost';
        
    

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

六、安全最佳实践

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

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


若转载请注明出处: Ubuntu上MariaDB的权限管理如何设置
本文地址: https://pptw.com/jishu/745198.html
Node.js在Debian中如何备份 Debian上Node.js如何日志管理

游客 回复需填写必要信息