我可以在 Google Cloud SQL 中创建只读用户吗

Yom*_*hmy 8 google-cloud-sql

Google Cloud SQL 只允许您控制数据库 root 用户密码。我需要创建一个新用户并将他的访问权限限制为只读,同时保持完全特权用户。

有没有办法做到这一点?

提前致谢,

Mau*_*oID 5

GCP 内的步骤:

首先username使用https://console.cloud.google.com/sql/instances/YOUR_INSTANCE_NAME/usersBuilt-in authentication上的选项创建数据库用户

然后撤销cloudsqlsuperuser权限:

REVOKE `cloudsqlsuperuser`@`%` FROM `username`@`%`;
Run Code Online (Sandbox Code Playgroud)

授予SELECT权限:

GRANT SELECT ON *.* TO `username`@`%`;
Run Code Online (Sandbox Code Playgroud)

核实:

SHOW GRANTS FOR 'USER_NAME';
-- You should see:
-- GRANT SELECT ON *.* TO `username`@`%`
Run Code Online (Sandbox Code Playgroud)


小智 2

您可以使用常规 MySQL 权限来实现这一点。以下是添加对数据库具有 SELECT 访问权限的用户的方法test。

mysql> GRANT ALL ON test.* TO user@'%';
Query OK, 0 rows affected (0.07 sec)

mysql> SHOW GRANTS FOR user@'%'\G
*************************** 1. row ***************************
Grants for user@%: GRANT USAGE ON *.* TO 'user'@'%'
*************************** 2. row ***************************
Grants for user@%: GRANT ALL PRIVILEGES ON `test`.* TO 'user'@'%'
2 rows in set (0.07 sec)

mysql> 
Run Code Online (Sandbox Code Playgroud)

如果您想授予对所有数据库的 SELECT 访问权限,您可以使用GRANT ALL ON `%`.*.

参考:Cloud SQL:如何使用 GRANT ALL?

  • 这不是只读用户。 (2认同)