使用不同的用户和密码创建多个 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 完全陌生,所以我想手动和自动化地实现上述场景。
感谢任何帮助。
这些是我遵循的步骤:
使用 Postgres ADMIN 用户使用 PgAdmin4 GUI 连接到 AWS RDS 实例。
使用管理员用户创建 3 个数据库 [database01、02 和 03]。
使用以下命令创建具有管理员用户的用户:
CREATE USER user01 with ENCRYPTED PASSWORD 'password01';
CREATE USER user02 with ENCRYPTED PASSWORD 'password02';
CREATE USER user03 with ENCRYPTED PASSWORD 'password03';
在SQL级别,每个用户确实可以连接到新创建的数据库,直到使用以下SQL命令:
REVOKE connect ON DATABASE database01 FROM PUBLIC;
REVOKE connect ON DATABASE database02 FROM PUBLIC;
REVOKE connect ON DATABASE database03 FROM PUBLIC;
完成后,每个应该能够连接的用户或角色都必须被明确授予连接权限:
GRANT CONNECT ON DATABASE database01 TO user01;
GRANT CONNECT ON DATABASE database02 TO user02;
GRANT CONNECT ON DATABASE database03 TO user03;
授予连接后,我们还可以使用以下命令向用户授予完全权限:
GRANT ALL PRIVILEGES ON DATABASE database01 to user01;
GRANT ALL PRIVILEGES ON DATABASE database02 to user02;
GRANT ALL PRIVILEGES ON DATABASE database03 to user03;
我们如何使用不同的用户和密码在 PostgreSQL 中创建多个数据库?
例如 - 我创建了一个 AWS PostgreSQL 实例,现在我想创建 3 个数据库,每个数据库都有单独的访问权限,例如
数据库01
User - user01
Password - password01
数据库02
User - user02
Password - password02
数据库03
User - user03
Password - password03
每个数据库都应该只对其用户有完全访问权限,并且应该限制创建和删除其他数据库中的任何内容,并且应该只有读取权限。
因为我对 PostgreSQL 完全陌生,所以我想手动和自动化地实现上述场景。
感谢任何帮助。
这些是我遵循的步骤:
使用 Postgres ADMIN 用户使用 PgAdmin4 GUI 连接到 AWS RDS 实例。
使用管理员用户创建 3 个数据库 [database01、02 和 03]。
使用以下命令创建具有管理员用户的用户:
CREATE USER user01 with ENCRYPTED PASSWORD 'password01';
CREATE USER user02 with ENCRYPTED PASSWORD 'password02';
CREATE USER user03 with ENCRYPTED PASSWORD 'password03';
在SQL级别,每个用户确实可以连接到新创建的数据库,直到使用以下SQL命令:
REVOKE connect ON DATABASE database01 FROM PUBLIC; REVOKE connect ON DATABASE database02 FROM PUBLIC; REVOKE connect ON DATABASE database03 FROM PUBLIC;
完成后,每个应该能够连接的用户或角色都必须被明确授予连接权限:
GRANT CONNECT ON DATABASE database01 TO user01; GRANT CONNECT ON DATABASE database02 TO user02; GRANT CONNECT ON DATABASE database03 TO user03;
授予连接后,我们还可以使用以下命令向用户授予完全权限:
GRANT ALL PRIVILEGES ON DATABASE database01 to user01; GRANT ALL PRIVILEGES ON DATABASE database02 to user02; GRANT ALL PRIVILEGES ON DATABASE database03 to user03;