迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > MySQL >

MySQL 创建只读用户

作者:迹忆客 最近更新:2023/05/06 浏览次数:

用户可能经常需要使用只读凭证创建对数据库的访问。 用户只能查看或读取保存在数据库中的数据; 他们不得更改其内容或设置方式。

本文主要讨论如何在MySQL中创建只读用户。 您需要创建一个只能以只读模式访问数据库的用户。


在 MySQL 中创建一个只读用户

要在 MySQL 中创建只读用户,请在终端或命令提示符下使用以下命令以 MySQL 管理员身份登录。

mysql -u root -p

将出现密码输入提示。 然后输入root账户的密码。

输出:

Enter root account password


创建一个新的 MySQL 用户帐户

CREATE USER 'report'@'%' IDENTIFIED BY 'secret';

用户 report 可以使用上述命令中的 %,如图所示,从任何主机加入。 您可以在指定用户可以连接的主机后限制访问。

如果省略此信息,用户将只能从同一台机器加入。

输出:

Create a New MySQL User Account


授予用户访问 SELECT 命令的权限

GRANT SELECT ON database_name.* TO 'report'@'%';

您必须同时拥有您授予的这些权限和 GRANT OPTION 权限才能使用 GRANT。 (或者,如果您拥有 MySQL 系统模式授权表的更新权限,则可以授予任何帐户任何权限)。

使用此命令,用户仅被授予对本地主机上数据库的只读访问权限。 如果您知道将安装收集器的主机的主机名或 IP 地址,请键入以下命令。

输出:

Grant the User Access

GRANT SELECT ON database_name.* TO 'report'@'host_name or IP_address';

要保存并应用权限调整,请运行以下命令。

FLUSH PRIVILEGES;
SHOW GRANTS FOR 'report'@'host_name or IP_address';

最后输入quite,显示用户授权权限确认。

由于 MySQL 8 与之前的版本不同,我们必须按照说明进行操作。 但是您必须按顺序分两个阶段进行:

CREATE USER 'readonly_user'@'localhost' IDENTIFIED BY 'some_strong_password';
GRANT SELECT, SHOW VIEW ON *.* TO 'readonly_user'@'localhost';
FLUSH PRIVILEGES;

MySQL 开发人员需要额外的功能,而 MySQL 8.0 提供了 SQL、JSON、正则表达式和 GIS 领域的许多功能。

UTF8MB4 在 8.0 版本中已经被用作默认字符集,因为开发者也希望能够存储 Emojis。

最后,还有对数据类型的增强,包括增强的 IPv6 和 UUID 功能以及对 BINARY 数据类型的按位操作。

输出:

display the user’s authorized privileges

以下是进一步的只读权限。

只读权限 说明
SHOW VIEW 允许他们显示视图模式。
SHOW DATABASES 允许他们显示数据库。
REPLICATION CLIENT 允许他们检查复制/从属状态。 但是他们需要允许所有数据库。
PROCESS 允许他们检查正在运行的进程。 它仅适用于所有数据库。

以下是您可以授予用户的几种权限。

权限 说明
ALL 这将允许 MySQL 用户进行所有访问。
ALL PRIVILEGES MySQL 用户将拥有完全访问权限。
CREATE 使他们能够开发新的数据库或表。
DROP 使他们能够删除数据库或表。
DELETE 使他们能够从表中删除行。
INSERT 使他们能够将行插入表中。
SELECT 使他们能够使用 SELECT 命令读取数据库。
SHOW VIEW 使他们能够显示视图架构。
REPLICATION CLIENT 使他们能够检查复制/从属状态,但他们需要允许所有数据库。
PROCESS 使他们能够检查正在运行的进程。 它仅适用于所有数据库。
UPDATE 使它们能够更新表行。
GRANT OPTION 使他们能够授予或删除其他用户权限。

使用以下框架为特定用户提供权限:

GRANT [type of permission list separated by a comma] ON [database name].[table name] TO ‘[username]’@'[hostname]’;

总结

在整篇文章中,我们讨论了在 MySQL 中创建只读用户。 使用它,用户只能出于只读目的访问数据库,并且只能从本地主机访问它。

密码始终标识只读用户。 如前所述,我们可以在MySQL命令行中使用几个命令来创建一个用户来访问数据库中的只读数据。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 Mysqldump 备份 MySQL 中的数据

发布时间:2023/05/09 浏览次数:192 分类:MySQL

本篇文章将介绍如何使用 mysqldump 只备份数据。 在这里,我们将探讨 --no-create-info 、--compact 、--skip-triggers 和 --no-create-db 选项。

更新 MySQL 表中的主键

发布时间:2023/05/09 浏览次数:61 分类:MySQL

本篇文章介绍如何更新 MySQL 表中的主键。 我们将使用 ALTER 命令对主键进行任何更改。更新 MySQL 表中的主键 我们可以在多种情况下更新 MySQL 表中的主键。

在 MySQL 中获取命令历史记录

发布时间:2023/05/09 浏览次数:150 分类:MySQL

本文重点介绍了在 Windows 和 Linux 中获取我们已执行的 MySQL 命令历史记录的各种方法。MySQL命令历史

Oracle 的 decode 函数在 MySQL 中的等价物

发布时间:2023/05/09 浏览次数:115 分类:MySQL

本篇文章介绍了三种替代实现,我们可以将它们用作 MySQL 中 Oracle 的 decode() 函数的等价物。 为此,我们将使用 IF()、CASE 以及 FIELD() 和 ELT() 的组合。

在 Linux 中安装 MySQL 客户端

发布时间:2023/05/09 浏览次数:72 分类:MySQL

在 Linux 中安装 MySQL 客户端的命令。Linux 和 Unix 等环境作为命令行界面工作,仅在命令的帮助下运行。

在 MySQL 中转换为十进制

发布时间:2023/05/09 浏览次数:150 分类:MySQL

有时,我们可能需要将一种数据类型转换为另一种数据类型。 下面是我们如何使用带有 DECIMAL(M,D) 的 CAST() 和 CONVERT() 函数在 MySQL 中转换为十进制。

在 MySQL 中获取当前日期和时间

发布时间:2023/05/09 浏览次数:145 分类:MySQL

本篇文章我们将学习 NOW()、CURRENT_TIMESTAMP()(也写为 CURRENT_TIMESTAMP)和 SYSDATE() 来获取 MySQL 中的当前日期和时间。 我们还将看到这三个功能之间的比较。在 MySQL 中获取当前日期和时间

更改 MySQL 服务器中的 max_allowed_packet Size

发布时间:2023/05/09 浏览次数:142 分类:MySQL

本篇文章介绍如何更改 MySQL 服务器中的 max_allowed_packet 大小。 为了了解这一点,我们将使用两个操作系统,Windows 10 和 Linux (Ubuntu)。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便