mysql如何创建新用户并授权

创建用户: 创建用户 'testuser'@'1 9 2 .1 6 8 .1 .1 00' 通过 caching_sha2 _password BY 'StrongPassword1 2 3 !' 进行识别; 授予权限: 授予选择,插入 testdb。
发送至“测试用户”@“1 9 2 .1 6 8 .1 .1 00”; 更新权限: 同花顺特权; 密码轮换: 更改用户“testuser”@“1 9 2 .1 6 8 .1 .1 00”,由“NewStrongPassword4 5 6 !”标识; 撤销权限: 撤销 testdb 的所有权限。
来自'testuser'@'1 9 2 .1 6 8 .1 .1 00'; 显示权限: 显示“testuser”@“1 9 2 .1 6 8 .1 .1 00”的补助金; 忘记root密码: 1 .停止MySQL: sudo systemctl stop mysql 2 . 首先跳过授权表: sudo mysqld_safe --skip-grant-tables & 3 . 连接并更新密码: UPDATE mysql.user SET subscription_string=PASSWORD('NewRootPassword') WHERE User='root'; 4 .更新权限:FLUSH PRIVILEGES; 5 、重启服务:sudo systemctl start mysql

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

说白了,在MySQL 8 .0中创建用户授权只需要几步,但陷阱却不少。

首先使用 mysql -uUserName -pPassWord 登录,如 mysql -uadmin -p1 2 3 4 5 6 这是一个基本操作。
然后检查数据库是否存在,例如使用CREATE DATABASE IF NOT EXISTS databaseName;创建b2 b,然后使用USE databaseName;切。
去年我们跑的项目中,因为忘记切换数据库,导致权限命令执行到了错误的库上,让我们哭笑不得。

创建用户时,使用CREATE USER 'userName'@'host' IDENTIFIED BY 'passWord';例如CREATE USER 'testUser'@'%' IDENTIFIED BY 'Haier...1 2 3 ';,其中'%'表示允许所有主机访问,风险较高但方便。
请记住,密码必须很复杂,包含大小写数字和特殊符号。
用行话来说,它被称为密码熵,可以有效防止暴力破解。
一开始以为“%”万能,后来发现某个客户端环境只允许“localhost”,直接报错。
说实话,当时很混乱。

要授权,请使用 GRANT SELECT, INSERT, UPDATE, DELETE ON authondabaseName.table TO 'userName'@'host';,例如 GRANT SELECT ON b2 b.area_code TO 'testUser'@'%';,然后 FLUSH PRIVILEGES;来强制其生效。
很多人不注意这一点。
如果您不更新,则根本不会使用权限。
要检查权限,您可以使用 Navicat 查看 SHOW GRANTS FOR 'testUser'@'%';,但最好运行 SELECT FROM b2 b.area_code;在命令行中查看是否可以找到数据。

最后提醒:撤销权限时,不能写错字段名,如REVOKE SELECT、INSERT FROM 'testUser'@'%';。
这只会撤销 SELECT 和 INSERT,但不会撤销 UPDATE 和 DELETE。
用 SHOW GRANTS 确认总是正确的。

建议将命令复制到脚本中并参数化运行,避免手动输入错误。
但说实话,“%”用得并不多,除非你确定所有环境都开放访问,否则指定 IP 或“localhost”会更安全。

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

哈,你写的步骤很完整,但是听起来有点像念经。
实际操作中,还得自己去尝试一下才能明白。
我将引导您了解要点,看看是否有什么不同。

上周一位客户问我如何管理MySQL用户。
当我把它呈现给他时,我发现光看文字很容易混淆。
你提到的命令是正确的,但是你每次使用的时候都要想清楚每一步要做什么,不要搞混了。

进入MySQL环境是基本步骤,没问题。
我通常使用mysql -u root -p 然后输入密码。
但是,有时如果远程连接,可能需要添加IP地址,例如mysql -u root -p -h 1 9 2 .1 6 8 .1 .1 00。
我认为你所说的使用用户名和密码有点冗长并且容易被误解。
就不能写清楚吗?
在创建数据库的步骤中,首先要考虑数据库的名称,比如你的例子中的b2 b。
如果数据库不存在,则使用CREATE DATABASE b2 b;创建它。
如果数据库已经存在,那么你真的不需要担心这一步。
使用使用 b2 b;对于数据库转换来说,这没有问题。

创建用户是重要的一步。
命令CREATE USER 'testUser'@'%' IDENTIFIED BY 'Haier...1 2 3 '中有一个'%';这意味着您可以从任何地方登录,即远程访问。
如果要将登录限制为本地登录,请使用“localhost”而不是“%”。
您需要创建自己的用户名和密码。
密码必须很复杂,包括特殊字符,包括您提到的大写和小写字母。
如果用户名重复,MySQL会直接报错并提醒你该用户已经存在。
这是正确处理的。

查看用户信息,你说使用USE mysql;然后检查用户表。
此方法有效,但有时身份验证字符串列会显示加密的密码。
如果你没有检查过root密码,就很难匹配。
有时我习惯使用 SHOW CREATE USER 'testUser'@'localhost';该命令可以直接查看用户详细信息,包括密码(root密码未加密)。

在用户授权步骤中,您编写的命令 GRANT SELECT, INSERT, UPDATE, DELETE ON b2 b.area_code TO 'testUser'@'localhost';是正确的。
SELECT、INSERT、UPDATE 和 DELETE 是权限列表,b2 b.area_code 是对象,TO 'testUser'@'localhost' 是授权人。
这里的权限范围、数据库、表一定要写清楚,否则授权就没用了。

请务必在授权后使用FLUSH PRIVILEGES。
你说得对,否则修改可能不会立即生效。
很多新手往往会忘记这一步。

要验证权限,可以使用Navicat之类的可视化工具来检查。
这个方法很好,也很直观。
您也可以在 MySQL 命令行中尝试,例如到testUser 登录,然后尝试 SELECT FROM Area_code;看看是否能找到数据。

要撤销权限,请撤销对 b2 b.area_code FROM 'testUser'@'localhost' 的选择、插入、更新、删除;你写的命令也是正确的。
请注意,RECALL 不是 RECALL。

要删除用户,您可以编写 DROP USER 'testUser'@'localhost';这是正确的。
但请注意,如果该用户之前已被授权过,则授权记录不会自动删除。
您可能必须使用 REVOKE ... FROM ...;首先撤销所有授权,然后释放用户。
有时直接DROP USER可能会提示权限不足或者用户不存在,所以操作前最好先确认一下。

总的来说,你写的步骤比较完整,也比较详细。
在实际操作中,尤其是权限和权限验证步骤,可能要结合具体环境尝试一下才能知道效果。
例如,对用户进行授权后,最重要的是该用户是否可以使用其他客户端(例如Navicat或命令行)正常连接数据库并操作指定的表。

无论如何,你只需要找到它。
纸上谈兵很容易,但是你可能要多次查看信息或者直接在测试环境中输入。