如何创建 GCP Cloud SQL IAM 用户
How to create GCP Cloud SQL IAM Users
这里的第一个答案是关于如何为您的 Google Platform Cloud SQL 实例创建 Cloud SQL IAM 用户的指南。
- 单击上方工具栏中您实例上的“编辑”。向下转到“Flags”并将“cloudsql.iam_authentication”设置为“on”。 =50=]
- 转到左侧导航窗格中的“用户”选项卡 > 单击“添加用户帐户”
- 在主要字段中使用此人的 GCP 电子邮件地址。任何人都可以创建此帐户,但只有 IAM 编辑才能更改 IAM 权限。 IAM 权限影响 GCP 对象,而不是数据库对象。 无需设置IAM权限即可连接数据库。
- 使用实例 IP 地址和
postgres
用户连接到数据库。使用此用户,我们可以分配权限,因为创建的 IAM 用户对数据库对象的权限为零。
grant connect on database database_name to "username@email.com";
-- Grant usage on current objects in a schema
grant all on SCHEMA schema_name to "username@email.com";
grant all on all TABLES in SCHEMA schema_name to "username@email.com";
grant all on all FUNCTIONS IN SCHEMA schema_name to "username@email.com";
grant all on all PROCEDURES IN SCHEMA schema_name to "username@email.com";
grant all on all ROUTINES IN SCHEMA schema_name to "username@email.com";
grant all on all SEQUENCES IN SCHEMA schema_name to "username@email.com";
-- Grant usage of any newly created objects in the future
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT all ON FUNCTIONS TO "username@email.com";
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT all ON ROUTINES TO "username@email.com";
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT all ON SEQUENCES TO "username@email.com";
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT all ON TABLES TO "username@email.com";
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT all ON types TO "username@email.com";
- 通过更改会话测试用户权限
set session authorization "username@email.com";
- 重置回来
reset session authorization;
这里的第一个答案是关于如何为您的 Google Platform Cloud SQL 实例创建 Cloud SQL IAM 用户的指南。
- 单击上方工具栏中您实例上的“编辑”。向下转到“Flags”并将“cloudsql.iam_authentication”设置为“on”。 =50=]
- 转到左侧导航窗格中的“用户”选项卡 > 单击“添加用户帐户”
- 在主要字段中使用此人的 GCP 电子邮件地址。任何人都可以创建此帐户,但只有 IAM 编辑才能更改 IAM 权限。 IAM 权限影响 GCP 对象,而不是数据库对象。 无需设置IAM权限即可连接数据库。
- 使用实例 IP 地址和
postgres
用户连接到数据库。使用此用户,我们可以分配权限,因为创建的 IAM 用户对数据库对象的权限为零。
grant connect on database database_name to "username@email.com";
-- Grant usage on current objects in a schema
grant all on SCHEMA schema_name to "username@email.com";
grant all on all TABLES in SCHEMA schema_name to "username@email.com";
grant all on all FUNCTIONS IN SCHEMA schema_name to "username@email.com";
grant all on all PROCEDURES IN SCHEMA schema_name to "username@email.com";
grant all on all ROUTINES IN SCHEMA schema_name to "username@email.com";
grant all on all SEQUENCES IN SCHEMA schema_name to "username@email.com";
-- Grant usage of any newly created objects in the future
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT all ON FUNCTIONS TO "username@email.com";
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT all ON ROUTINES TO "username@email.com";
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT all ON SEQUENCES TO "username@email.com";
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT all ON TABLES TO "username@email.com";
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT all ON types TO "username@email.com";
- 通过更改会话测试用户权限
set session authorization "username@email.com";
- 重置回来
reset session authorization;