企业网站例子,wordpress清理网站缓存,中山今科网站建设,温州网站建设 温州网站制作业务规划与创建 Schemas
如果实际场景#xff0c;有业务A、业务B、业务C#xff0c;推荐的方式是在同一个数据库中为每个业务创建不同的 schema。然后#xff0c;你可以为每个业务创建不同的账户#xff0c;并赋予这些账户对应业务的 schema 权限。这种方式的好处是#…业务规划与创建 Schemas
如果实际场景有业务A、业务B、业务C推荐的方式是在同一个数据库中为每个业务创建不同的 schema。然后你可以为每个业务创建不同的账户并赋予这些账户对应业务的 schema 权限。这种方式的好处是
隔离性不同业务的对象被隔离在不同的 schema 中避免了命名冲突和误操作。
权限管理可以精细地控制每个账户对各个 schema 的访问权限实现业务间的数据隔离和安全性。
易于管理所有业务都集中在同一个数据库中方便进行备份、恢复和维护。具体步骤操作
在 mydatabase 数据库中创建三个 schema分别命名为 schema_a、schema_b 和 schema_c对应业务A、业务B和业务C。
创建三个账户分别命名为 user_a、user_b 和 user_c用于访问对应业务的 schema。
使用 GRANT 语句为每个账户赋予对应 schema 的访问权限。例如授予 user_a 对 schema_a 的所有权限但限制其对其他 schema 的访问。这样就为每个业务创建了一个独立的命名空间并通过账户权限实现了业务间的隔离和安全性。
在 PostgreSQL 中创建 schema 和对应的账户
创建新用户
登录到 PostgreSQL
使用 psql 命令行工具以超级用户如 postgres身份登录到你的数据库集群。
psql -U postgres为每个业务创建一个新用户。例如为 oa 业务创建用户 oa_user。 CREATE USER oa_user WITH PASSWORD my_password_here;重复此步骤为其他业务如 iot, erp, mis创建用户。
创建 Schema
为每个业务创建一个新的 schema。 ~$ psqlpsql (15.6 (Debian 15.6-0deb12u1))Type help for help.postgres# \c mydatabaseYou are now connected to database mydatabase as user postgres.mydatabase# mydatabase# CREATE SCHEMA mydb_oa01 AUTHORIZATION oa_user;这创建了名为 oa 的新 schema并将其所有权赋予 oa_user。同样地为其他业务创建 schema。
授予数据库账户权限
根据需要授予用户对其 schema 的适当权限。例如要允许 oa_user 在其 oa schema 中创建表
GRANT CREATE ON SCHEMA oa TO oa_user;授予其他权限如 USAGE允许用户使用 schema 中的对象或 ALTER允许用户修改 schema 中的对象可根据业务需求规划。
授权示例
配置 dbadmin 可以访问新建的 schema
mydatabase# GRANT USAGE ON SCHEMA mydb_thb01 TO user_oa;
GRANT
mydatabase# GRANT USAGE ON SCHEMA mydb_thb01 TO dbadmin;
GRANTmydatabase# GRANT USAGE ON SCHEMA mydb_oa01 TO user_thb;
GRANT
mydatabase# GRANT USAGE ON SCHEMA mydb_oa01 TO dbadmin;
GRANT
mydatabase# \dnList of schemasName | Owner | Access privileges | Description
-------------------------------------------------------------------------------------------------public | pg_database_owner | pg_database_ownerUC/pg_database_owner| standard public schema| | U/pg_database_owner |mydb_oa01 | user_oa | user_oaUC/user_oa || | user_thbU/user_oa || | dbadminU/user_oa |mydb_thb01 | user_thb | user_thbUC/user_thb || | user_oaU/user_thb || | dbadminU/user_thb |
(3 rows)mydatabase#
配置外部访问权限
编辑pg_hba.conf文件以控制访问权限 这里参考 1.3 PostgreSQL 创建数据库初始化 中的 配置外部访问权限 即可。