使用不同的用户和密码创建多个 PostgreSQL 数据库

Create Multiple PostgreSQL Databases with Different Users and Passwords

我们如何使用不同的用户和密码在 PostgreSQL 中创建多个数据库?

例如 - 我创建了一个 AWS PostgreSQL 实例,现在我想创建 3 个数据库,每个数据库都有单独的访问权限,例如

数据库01

 User - user01     
 Password - password01

数据库02

   User - user02
   Password - password02

数据库03

   User - user03
   Password - password03

每个数据库都应该只对其用户有完全访问权限,并且应该限制创建和删除其他数据库中的任何内容,并且应该只有读取权限。

因为我对 PostgreSQL 完全陌生,所以我想手动和自动化地实现上述场景。

感谢任何帮助。

这些是我遵循的步骤:

  1. 使用 Postgres ADMIN 用户使用 PgAdmin4 GUI 连接到 AWS RDS 实例。

  2. 使用管理员用户创建 3 个数据库 [database01、02 和 03]。

  3. 使用以下命令创建具有管理员用户的用户:

CREATE USER user01 with ENCRYPTED PASSWORD 'password01';
CREATE USER user02 with ENCRYPTED PASSWORD 'password02';
CREATE USER user03 with ENCRYPTED PASSWORD 'password03';
  1. 在SQL级别,每个用户确实可以连接到新创建的数据库,直到使用以下SQL命令:

    REVOKE connect ON DATABASE database01 FROM PUBLIC;
    REVOKE connect ON DATABASE database02 FROM PUBLIC;
    REVOKE connect ON DATABASE database03 FROM PUBLIC;
    
  2. 完成后,每个应该能够连接的用户或角色都必须被明确授予连接权限:

    GRANT CONNECT ON DATABASE database01 TO user01;
    GRANT CONNECT ON DATABASE database02 TO user02;
    GRANT CONNECT ON DATABASE database03 TO user03;
    
  3. 授予连接后,我们还可以使用以下命令向用户授予完全权限:

    GRANT ALL PRIVILEGES ON DATABASE database01 to user01;
    GRANT ALL PRIVILEGES ON DATABASE database02 to user02;
    GRANT ALL PRIVILEGES ON DATABASE database03 to user03;