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

记得有一次,我帮另一个办公室的小王配置数据库访问权限。
他非常着急,总是希望新同事能靠近他的办公桌。
我告诉他,他是第一个创建用户并授予权限的,这样随机的陌生人就无法进入。

他在命令行输入mysql -uadmin -p。
我看了看柜台,他进检票的时候双手都在颤抖。
他接通后,我提醒他先检查一下公司的数据库是否被调用。
又说:他也在社会的利用之中;我被困在这里是因为我取了数据库的名称并且忘记了它。

创建用户时,我要求他使用密码Wang2 02 4 !本来会这么说,但Wang2 02 4 坚持要改。
我没说一定是资本,但他还是不相信。
我试了半天,提示“认证字符串无法设置”,我就说看看吧,肯定比较复杂。

获得权限后,我写了一个命令来选择礼物、插入、更新、删除。
销售公司到'xiaoli@localhost';。
小王问为什么是localhost,我说默认不允许远程访问,这样就安全了。
他点点头,但过了一会儿他又问我,如果他想让一个外国人接近她,他会如何改变他的军队?我让他试试,他说真的有效!验证权限后,我能够连接到 Navicat。
桌子前面有一个小锯子的名字。
他走下来,看到他们都被检查了。
他满意地点点头。
但后来他问我,如果我撤销权限,我还需要使用宾馆吗? % 这次我说使用并尝试撤销所有远程访问权限。

最后问如何删除用户。
我说删除用户'xiaoli@localhost';。
他打字速度很慢,说感觉像是删除了一些重要的东西。
删除了,我要求重新尝试连接,结果“Access returned for the user "xiaoli"@'localhost"”。
他很惊讶,问我怎么回事。
我说你忘记授予权限了,再做一次。

等了一会儿,我看着他重新执行了选定的公司。
我突然想到,他会不会忘记本地主机和%的区别然后来问的时间?

mysql如何添加用户权限

哎呀,我在一家互联网公司负责数据库运维的时候,对MySQL用户权限管理有很深的了解。
记得当年,我们公司一个项目上线之前,我负责为数据库创建一个只读用户,以便前端团队可以查看数据但不能修改数据。

当时我在 MySQL 中这样做:创建了一个用户和一个 CREATEUSER 'web_reader'@'1 9 2 .1 6 8 .1 .%' IDENTIFIED BY 'SecurePass1 2 3 !'书面。
这个密码是我特意设置的。
这里很混乱而且很安全。
然后授予权限,即GRANT SELECT ON app_db。
TO 'web_reader'@'1 9 2 .1 6 8 .1 .%',因此该设置是只读的。
最后,记得更新权限和FLUSH PRIVILEGES;进行。

虽然这是一件小事,但细节上还是需要注意的。
比如一开始我没有正确设置主机名,导致前端团队访问远程服务器上的数据库出现问题。
后来我把它改为1 9 2 .1 6 8 .1 .%,这样就允许本地网络上的任何计算机访问。

还有一次,一位同事不小心把所有权限都给了一个测试账户,这真是一个大错误。
我快速检查了权限,并使用 SHOW GRANTS FOR 'test_user'@'%' 检查它们,然后立即使用 REVOKE ALL PRIVILEGES ON。
FROM 'test_user'@'%' 撤销所有权限。
幸亏发现得早,不然万一出了问题就麻烦了。

现在想来,当年确实遇到了很多坑,但也学到了很多东西。
现在回想起来,我觉得这些基本的权限管理操作其实非常重要。
正如你所说,遵循最小权限原则,不要只使用GRANT ALL,严格限制生产环境中的主机名,并定期检查权限。
这些都是维护数据库安全的好习惯。
说起来,我还没有使用过MySQL 8 .0+的角色管理功能。
我必须在某个时候尝试一下。

mysql如何创建新用户并授权

CREATEUSER 'testuser'@'1 9 2 .1 6 8 .1 .1 00' AS 'StrongPassword1 2 3 !'通过caching_sha2 _password识别; 选择grant,插入testdb。
发送至“测试用户”@“1 9 2 .1 6 8 .1 .1 00”; 同花顺特权; 问题是:不要使用 GRANTALLPRIVILEGESON。
定期轮换密码:ALTERUSER 'testuser'@'1 9 2 .1 6 8 .1 .1 00' 'NewStrongPassword4 5 6 !'确定为; 实用提醒:限制用户连接来源,细化权限。