Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL账号权限管理

MySQL账号权限管理指南(创建账户与授权)

作者:sg_knight

在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节,直接使用root账号进行所有操作不仅危险且难以审计操作行为,今天我们来全面解析MySQL账号创建与权限分配的专业方法,需要的朋友可以参考下

一、为何需要创建独立账号?

二、创建MySQL用户账号

创建新用户需要使用CREATE USER命令,基本语法如下:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

示例:

CREATE USER 'dev_user'@'192.168.1.%' IDENTIFIED BY 'P@ssw0rd!2023';

此命令创建了一个只能从192.168.1.0/24网段连接的账号,用户名为dev_user

三、为用户分配数据库权限

创建用户后需要授予特定权限,使用GRANT命令:

GRANT 权限类型 ON 数据库.表 TO '用户名'@'主机';

权限类型详解

权限类型作用说明风险等级
SELECT允许查询数据
INSERT允许插入数据
UPDATE允许更新数据
DELETE允许删除数据
CREATE允许创建数据库和表
DROP允许删除数据库和表极高
ALL PRIVILEGES授予所有权限极高
GRANT OPTION允许用户将自己的权限授予他人极高

常用授权示例

GRANT ALL PRIVILEGES ON sales_db.* TO 'dev_user'@'192.168.1.%';
GRANT SELECT ON report_db.* TO 'read_user'@'%';
GRANT SELECT, INSERT ON order_db.customers TO 'ops_user'@'localhost';
GRANT SELECT ON *.* TO 'dba_user'@'localhost' WITH GRANT OPTION;

WITH GRANT OPTION允许该用户将自己的权限授予其他用户,仅应授予受信任的管理员

权限生效与查看

授权后必须刷新权限使更改生效:

FLUSH PRIVILEGES;

查看用户权限:

SHOW GRANTS FOR 'username'@'host';

四、高级账号管理技巧

1. 资源使用限制

创建用户时可限制其资源使用:

CREATE USER 'limited_user'@'%' 
IDENTIFIED BY 'Password123'
WITH MAX_QUERIES_PER_HOUR 100 
 MAX_UPDATES_PER_HOUR 10
 MAX_CONNECTIONS_PER_HOUR 30;

此用户每小时最多执行100次查询、10次更新和30个连接

2. 密码策略管理

ALTER USER 'dev_user'@'%' 
PASSWORD EXPIRE INTERVAL 90 DAY
PASSWORD HISTORY 5;

强制该用户每90天更改密码,且新密码不能与最近5次密码重复

3. 账号禁用与启用

-- 禁用账号
ALTER USER 'temp_user'@'%' ACCOUNT LOCK;

-- 启用账号
ALTER USER 'temp_user'@'%' ACCOUNT UNLOCK;

4. 重命名用户

RENAME USER 'old_user'@'%' TO 'new_user'@'%';

五、安全最佳实践

DROP USER 'departed_user'@'%';

六、权限修改与撤销

当需要收回权限时:

-- 撤销所有权限
REVOKE ALL PRIVILEGES ON sales_db.* FROM 'dev_user'@'%';

-- 撤销特定权限
REVOKE DELETE ON order_db.* FROM 'ops_user'@'localhost';

撤销权限后同样需要执行FLUSH PRIVILEGES;使更改生效

七、总结要点

通过合理创建用户和分配权限,您可以实现:

数据库安全无小事,良好的账号权限管理习惯,能为您避免90%以上的数据安全事故。

以上就是MySQL账号权限管理指南(创建账户与授权)的详细内容,更多关于MySQL账号权限管理的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文