如何创建只读MySQL用户?

介绍

有时,您只需要创建一个用户就可以对数据库进行只读访问。用户可以查看或读取数据库中的数据,但不能对数据或数据库结构进行任何更改。

创建一个新的用户帐户

要为MySQL创建只读数据库用户帐户,请执行以下步骤:

  • 首先,使用以下命令从您的终端/命令提示符下以MySQL管理员身份登录:

mysql -u root -p
  • 系统将提示您输入密码。输入root帐户密码。

  • 创建一个新的MySQL用户帐户。

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

%上面命令中的in表示用户report可以用来从任何主机进行连接。您可以通过定义用户可以连接的主机来限制访问。省略此信息将仅允许用户从同一台计算机进行连接。

  • SELECT向用户授予特权。

GRANT SELECT ON nhooo.* TO 'report'@'%';
  • 执行以下命令以保存特权更改并生效。

FLUSH PRIVILEGES;
  • 键入quit以退出MySQL Shell。

测试新用户帐户

  • 现在,我们可以尝试新创建的用户帐户。首先使用新的用户帐户登录并提供相应的密码。

mysql -u report -p
  • 尝试执行以下DELETE命令:

mysql> USE nhooo;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> DELETE FROM authors;
ERROR 1142 (42000): DELETE command denied to user 'report'@'localhost' for table 'authors'
mysql> UPDATE authors SET name = 'Wayan Saryada' WHERE id = 1;
ERROR 1142 (42000): UPDATE command denied to user 'report'@'localhost' for table 'authors'
mysql>