mysql如何创建新用户并授权

哦,你问这个?上周,有客户问我如何管理MySQL用户。
我向他证明了这一点并写了下来。
现在我再告诉你一次~
如果你创建一个新用户,你必须先创建用户。
过去,旧版本可以使用old_passwords插件,但现在是8 .0+,你可以只使用caching_sha2 _password。
这种加密方式更加安全。
停止使用生日 1 2 3 等弱密码。
例如,如果您想要名为 testuser 的用户,则只能从 IP 地址 1 9 2 .1 6 8 .1 .1 00 进行连接。
密码需要更复杂一些,像这样:
sql 创建用户“testuser”@“1 9 2 .1 6 8 .1 .1 00”,并通过“StrongPassword1 2 3 !”使用 caching_sha2 _password 进行识别;
请记住在此语法中使用单引号,尤其是 @ 之后的单引号。

授权时要记住的最重要的事情是最小权限原则。
过去,我见过人们直接 GRANT ALL PRIVILEGES ON 。
发送至“testuser”@“1 9 2 .1 6 8 .1 .1 00”。
这种写法现在基本被封杀了。
建议您提供所需的权限。
例如该用户只需要使用testdb:
sql数据库 授予选择,插入 testdb。
发送至“testuser”@“1 9 2 .1 6 8 .1 .1 00”;
如果用户需要更多权限,请添加它们,例如给他 UPDATE 和 DELETE:
sql 允许在 testdb 上进行选择、插入、更新、删除。
发送至“testuser”@“1 9 2 .1 6 8 .1 .1 00”;
您必须运行 FLUSH PRIVILEGES;每当您更改权限时,否则它们可能需要一些时间才能生效。
上次改权限的时候忘了这句话了。
结果客户端无法连接,这让我着急。

安全方面有几个关键点: 1 .密码必须是caching_sha2 _password,不要使用mysql_native_password,太容易被暴力破解。
该插件现在是Linux MySQL下载的默认插件,但如果是旧版本或配置已更改,最好确认一下: 平方米 SELECT user, plugin FROM mysql.user WHERE user = 'testuser';
如果您看到 mysql_native_password,请使用 ALTER USER 再次更改它: 平方米 更改由 'NewStrongPassword4 5 6 !' 使用 caching_sha2 _password 标识的用户 'testuser'@'1 9 2 .1 6 8 .1 .1 00';
2 . 连接源必须受到限制。
如果用户只需要在公司内使用,则写“1 9 2 .1 6 8 .1 .1 00”。
如果用户在局域网内的多台机器上操作,可以使用“1 9 2 .1 6 8 .1 .%”。
现在有客户使用云服务器,所以我给他们写“%.example.com”,这样example.com下的任何子域名都可以链接。
但请记住,“1 9 2 .1 6 8 .1 .%”将匹配所有以 1 9 2 .1 6 8 .1 开头的 IP,所以要小心!
3 授权时请勿握手。
授予 上的所有权限。
TO 'root'@'%' 不应该提供给普通用户!上次帮同事搭建测试环境的时候,我是刷屏输入的。
结果,整个数据库几乎被消灭了。
我很害怕,很快就撤销了权限。

撤销权限也很简单,使用REVOKE即可: 平方米 撤销 testdb 上的所有权限。
来自'testuser'@'1 9 2 .1 6 8 .1 .1 00'; 同花顺特权;
如果您想查看用户拥有哪些权限,只需使用 SHOW GRANTS: 平方米 显示“testuser”@“1 9 2 .1 6 8 .1 .1 00”的补助金;
最可怕的是如果你忘记了root密码怎么办。
我见过他一次。
客户端服务器突然蓝屏,重启后无法连接MySQL。
目前你只能执行这个有趣的操作: 1 .停止MySQL服务: 巴什 我出汗systemctl 停止 mysql
2 从跳过授权表开始: 巴什 sudo mysqld_safe --skip-grant-tables &
3 登录并更改密码: 平方米 UPDATE mysql.user SETauthentiating_string=PASSWORD('NewRootPassword') WHERE User='root'; 同花顺特权;
4 重新启动服务: 巴什 sudo systemctl start mysql
这应该很快,因为skip-grant-tables模式下的权限表是只读的,当正常服务启动时就会消失。
我的上一次交易持续了 1 5 分钟,但我仍然必须再次授权,这让我很生气。

然而,用户管理是一项微妙的工作。
如果密码和权限稍有松懈,很容易出现大问题。
现在的云平台都有数据库管理控制台,但是您仍然需要了解底层操作,以便在遇到特殊需求或系统问题时可以对其进行管理。
如果你记住了这一点,至少你不会直接删除数据库。

MySQL安装后如何创建用户_MySQL用户创建与权限管理指南

记得有一次,我在公司服务器上安装了MySQL数据库。
为了方便,我直接创建了几个数据库用户为root用户,权限也很广泛。
结果有一次,接到紧急电话,说数据库被黑了,数据被篡改了。
我赶紧查了一下,发现有些表的数据确实被改变了。
我当时感觉很不好。
如果我当时遵循少权原则,也许就不会发生这样的事情。

我快速回忆了一下创建用户和分配权限的过程,发现自己没有严格按照说明操作。
例如,我分配了一位负责数据录入的同事对所有数据库的 SELECT、INSERT、UPDATE 和 DELETE 权限,但实际上他只需要 SELECT 和 INSERT 权限。
另外,在创建用户时,直接使用‘%’作为主机,这显然是不安全的。

从那时起,我每次创建用户时都会仔细考虑权限范围和主机设置。
例如,当我为新同事创建用户时,我这样做:CREATEUSER 'newuser'@'1 9 2 .1 6 8 .1 .%' IDENTIFIED BY 'StrongPass1 2 3 !';然后,它使用 GRANT 语句根据其作业的需要分配适当的权限,例如:GRANT SELECT、INSERT ON mydb。
TO 'newuser'@'1 9 2 .1 6 8 .1 .%';
现在,我也会定期检查用户权限,确保没有多余的权限。
此外,我还开始使用角色来简化权限管理,例如创建只读角色,然后将该角色分配给需要只读权限的用户。

等一下,我突然想到我们公司还有一个数据库监控工具,可以实时监控用户的操作,这样可以更早地发现潜在的安全问题。
然而,这需要时间来学习和设置。

如何用phpmyadmin设置mysql数据库用户的权限

说白了,设置MySQL数据库用户权限其实很简单。
先说最重要的,需要在phpmyadmin中进行操作。
具体步骤如下:
1 . 打开浏览器,输入phpmyadmin地址,然后使用用户名和密码登录。

2 在左侧导航栏中找到需要设置权限的数据库,点击旁边的“权限”按钮。

3 点击“编辑权限”后,将进入权限设置页面。

4 在这里,您可以根据需要设置用户的权限。
例如,如果您想为某个用户添加所有权限,则可以勾选“所有权限”选项。

5 设置完成后,别忘了点击页面右下角的“执行”按钮来更新权限。

等等,还有一件事。
一开始我以为只要勾选“所有权限”就万事大吉了,后来发现错了。
一些具体的操作还是需要额外的设置,比如删除数据、修改数据等。

最后提醒一下,如果在这个设置过程中遇到权限错误,可能是因为数据库配置问题。
您可以检查MySQL用户权限是否设置正确,或者尝试重启MySQL服务。
很多人没有注意到这一点,但这确实是一个陷阱。

mysql创建只读权限用户教程

Navicat 创建一个只读 MySQL 用户。
步骤如下:
1 .打开 Navicat。
2 . 连接MySQL数据库并输入用户名和密码。
3 . 双击左侧的“用户”。
4 . 单击“新用户”。
5 . 输入用户名,例如例如。
只读_用户。
6 . 输入密码并确认密码。
7 . 使用% 设置主机名或指定IP。
8 . 进入“服务器权限”。
9 . 激活“选择”。
1 0.禁用其他权限。
1 1 . 可选:更改“权限”。
1 2 .添加权限并选择数据库表。
1 3 . 激活“选择”。
1 4 . 单击“确定”保存。

注意:您需要创建用户的权限。
生产环境使用特定的IP。