Mysql8.0 子数据库账户及密码创建和赋权

该博客介绍了如何在数据库环境中进行权限管理。首先,作为管理员,使用`GRANT ALL PRIVILEGES`命令将所有权限授予子数据库的管理员账号。然后,通过`CREATE USER`创建并设置子用户的账号和密码,并使用`GRANT`命令赋予其在子数据库上的全部权限。最后,使用`FLUSH PRIVILEGES`更新权限配置,确保更改生效。

第一步:在大数据库下授grant权限给子数据库
步骤:
#使用管理员root用户授权,库名为子数据库名,账号为管理员账号
grant all privileges on 库名.*  to '账号'@'%' with grant option;

第二步:创建子用户及密码
#添加加密方式的用户
#create user '子账号'@'%' identified with mysql_native_password by '密码';
#赋权
#grant all privileges on 子数据库库名.* to '子账号'@'%' with grant option;
#更新配置
#flush privileges;
 

### 如何在 MySQL 8.0 中修改用户访问权限 #### 修改用户的认证方式 为了使某些客户端工具能够成功连接到 MySQL 服务器,可能需要更改默认的身份验证插件。对于 MySQL 8.0,默认情况下使用 `caching_sha2_password` 插件作为新的身份验证机制,这可能会导致一些旧版应用程序或管理工具(如 Navicat)遇到兼容性问题。 因此,可以考虑将特定用户的认证方式更改为更为广泛支持的 `mysql_native_password`: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; FLUSH PRIVILEGES; ``` 这条命令会把 root 用户本地主机上的认证方法切换成 `mysql_native_password` 并设置一个新的密码[^2]。 #### 授予/撤销全局权限 如果希望授予某个用户拥有对所有数据库对象的操作权利,则可以通过如下 SQL 命令实现: ```sql GRANT ALL PRIVILEGES ON *.* TO '用户名'@'允许连接的IP地址' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 相反地,当不再信任该账户或者出于安全考量想要减少其权力范围时,可执行下面语句撤回已赋予的权利: ```sql REVOKE ALL PRIVILEGES, GRANT OPTION FROM '用户名'@'允许连接的IP地址'; FLUSH PRIVILEGES; ``` 请注意,在实际应用中应当谨慎分配高权限给任何账号,并遵循最小特权原则仅给予必要的授权[^4]。 #### 设置针对单个库表的具体权限 除了上述提到的大规模赋权外,还可以精确控制某位用户能做什么以及不能做什么。比如只让一个开发人员读取指定的数据集而不具备写入能力: ```sql GRANT SELECT ON 数据库.数据表名 TO '用户名'@'允许连接的IP地址'; FLUSH PRIVILEGES; ``` 同样也可以通过 REVOKE 关键字取消这些细粒度级别的许可。 每次完成权限变更之后都记得调用 FLUSH PRIVILEGES 来刷新权限缓存以确保改动立即生效。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值