mysql如何创建新用户并授权

说白了,在MySQL中创建一个新用户并授权确实很简单,但复杂之处在于细节和安全性。
我们先来说说最重要的事情。
创建用户时,必须使用 CREATEUSER 语句指定用户名、主机和密码。
例如,在我们去年做的一个项目中,我们将测试用户设置为仅允许来自IP 1 9 2 .1 6 8 .1 .1 00的连接,密码为强密码“StrongPassword1 2 3 !”。
其实一开始我以为使用默认的mysql_native_password就可以了,但是后来发现是错误的。
使用 caching_sha2 _password 更安全。

还有一点,授权的时候不要直接使用GRANTALLPRIVILEGESON。
这太令人困惑了。
必须遵守最小权限原则,仅授予必要的权限。
去年我们有一个3 000级的项目,我们只给了测试用户SELECT和INSERT权限,而不是所有权限。
还有一个重要的细节,不要忘记刷新权限并使用FLUSHPRIVILEGES;这句话将使权限的更改立即生效。

一开始我以为这很简单,直到我遇到了忘记root密码的情况。
当时,我不得不启动MySQL绕过权限模式,然后用UPDATE语句更新密码。
等等,还有一件事,记得定期更改密码并通过ALTERUSER更新,这样可以提高安全性。

最后,再次强调撤销权限和查看用户权限很重要,这可以使用 REVOKE 和 SHOWGRANTS 来完成。
有关恢复忘记的 root 密码的步骤,请记住先停止 MySQL 服务,然后以旁路模式启动它,更新密码,最后重新启动服务。
总之,创建用户时明确的服务器限制和强密码策略、授权时坚持最小权限原则、定期审查密码安全和权限是最大限度降低数据库风险的关键。

MySQL8.0 创建用户及授权 - 看这篇就足够了

2 02 2 年,我在一座城市。
当时我负责一个项目,要在MySQL 8 .0中创建用户和权限。
步骤很困难;当时我很困惑。
具体来说,我必须首先登录MySQL环境,这是使用命令行并输入mysqluUserNamepPassWord。
UserName 是用户名,PassWord 是密码。
我当时登录的是testUserHaier1 2 3
之后,我必须确保数据库已创建。
否则创建database数据库名称;使用创建一个 例如,我创建了一个名为 b2 b 的数据库。

接下来我要切换到这个数据库;我想使用相同的数据库名称切换到 b2 b。

创建一个新用户。
这一步有点重要。
我创建用户'userName'@'host'identifiedby'passWord';用过的。
比如我创建了testUser,密码是Haier...1 2 3 密码复杂且区分大小写。
请注意,其中包括数字和特殊字符。

之后,我必须检查用户信息并使用usemysql。
切换到系统数据库; selecthost 用户authentication_string;从用户运行插件。
用户是否创建成功。
要查看没有。

允许用户;我 grantauthondatabaseName.tableto 'userName'@'host';必须使用。
例如,我在 b2 b 数据库中有一个area_code表选择权限;安装更新和删除都交给testUser。

重启权限,我用的是flushprivileges。
使授权生效。

确认权限;使用Navicat等可视化工具来验证测试用户是否具有权限。

撤销权限。
如有必要,revokeautondatabaseName.tablefrom'userName'@'host';例如,用于撤销testUser对area_code表的权限。

最后,删除用户;使用 dropuser'用户名'@'主机';例如,删除 testUser。

整个过程中,用户名主机名;数据库名、表名必须正确;密码不能太简单;我特别关注这样一个事实:授权必须首先基于最小特权和安全性。