10人参与 • 2025-06-10 • Mysql
创建新用户需要使用create user
命令,基本语法如下:
create user 'username'@'host' identified by 'password';
localhost
:仅允许本地连接%
:允许从任何ip地址连接192.168.1.%
:允许特定网段连接示例:
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';
创建用户时可限制其资源使用:
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个连接
alter user 'dev_user'@'%' password expire interval 90 day password history 5;
强制该用户每90天更改密码,且新密码不能与最近5次密码重复
-- 禁用账号 alter user 'temp_user'@'%' account lock; -- 启用账号 alter user 'temp_user'@'%' account unlock;
rename user 'old_user'@'%' to 'new_user'@'%';
show grants
检查用户权限是否合理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账号权限管理的资料请关注代码网其它相关文章!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论