当前位置: 代码网 > it编程>数据库>Mysql > 如何设置mysql数据库只读权限用户及全部权限

如何设置mysql数据库只读权限用户及全部权限

2025年11月02日 Mysql 我要评论
前言:工作过程当中,如果开放你数据库的读写权限,怕引起安全问题或者数据被篡改。对方又要你数据库访问的读权限。一、授予用户只读权限要在mysql中创建一个只能进行查询(select)的用户,请使用以下脚

前言:

工作过程当中,如果开放你数据库的读写权限,怕引起安全问题或者数据被篡改。对方又要你数据库访问的读权限。

一、授予用户只读权限

要在mysql中创建一个只能进行查询(select)的用户,请使用以下脚本。根据你的mysql版本和需求,有两种常见方法:

1、方法1:创建用户并授予特定数据库的只读权限(推荐)

-- 创建新用户(替换 'readonly_user' 和 'yourpassword123!')
create user 'readonly_user'@'%' identified by 'yourpassword123!';

-- 授予对指定数据库的 select 权限(替换 your_database_name)
grant select on your_database_name.* to 'readonly_user'@'%';

-- 刷新权限使更改生效
flush privileges;

指定库名:    grant select, insert, update, delete, execute, show view 
on `库名`.* 
to 'sjzt'@'%';  -- 注意结尾必须有分号

2、方法2:创建用户并授予所有数据库的只读权限(谨慎使用)

-- 创建新用户(替换凭证)
create user 'readonly_user'@'localhost' identified by 'yourpassword123!';

-- 授予全局 select 权限
grant select on *.* to 'readonly_user'@'localhost';

flush privileges;

2.1关键参数说明:

参数说明
'readonly_user'@'%'用户名 + 访问来源(%允许任意ip访问,localhost仅限本地)
identified by设置强密码(需包含字母、数字、特殊字符)
your_database_name.*权限作用范围(替换为实际数据库名,如 sales_db.*
grant select仅授权查询权限(无insert/update/delete等写权限)

2.2 验证权限:

-- 查看用户权限
show grants for 'readonly_user'@'%';

输出应类似:

grant select on `your_database_name`.* to `readonly_user`@`%`

2.3 安全建议:

  1. 最小权限原则:只授予必要的数据库权限

  2. 访问限制

    • 生产环境建议用 'user'@'192.168.1.%' 限制ip段

    • 远程访问时用 'user'@'%' 但需配置防火墙

  3. 密码策略

    alter user 'readonly_user'@'%' 
    with password expire interval 90 day;  -- 强制90天修改密码
  4. 撤销权限(如果需要):

    revoke select on your_database_name.* from 'readonly_user'@'%';
    drop user 'readonly_user'@'%';

⚠️ 注意:执行脚本需具有 create user 和 grant option 权限的管理员账户。

二、授予全部数据库权限

-- 创建用户 szt,密码为 aa1dd
create user 'szt'@'%' identified by 'aa1dd';

-- 授予 szt 用户对所有数据库的所有权限
grant all privileges on *.* to 'szt'@'%';

-- 刷新权限使更改生效
flush privileges;


-- # 验证
show grants for 'szt'@'%';

三、授予部分数据库读写权限

-- 创建用户 sk(需要您提供密码,这里暂时用 'password' 代替)
create user 'sk'@'%' identified by 'password';

-- 授予 sk 用户对 aa 数据库的所有权限
grant all privileges on `aa`.* to 'sk'@'%';

-- 授予 sk 用户对 bb 数据库的所有权限
grant all privileges on `bb`.* to 'sk'@'%';

-- 刷新权限使更改生效
flush privileges;

-- 验证
show grants for 'sk'@'%';

总结 

到此这篇关于如何设置mysql数据库只读权限用户及全部权限的文章就介绍到这了,更多相关mysql只读权限用户及全部权限内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com