Database 和 Schema 设计
GBase 8s 中可以使用 Database 和 Schema 实现业务的隔离,区别在于 Database 的隔离更加彻底,各个 Database 之间共享资源极少,可实现连接隔离、权限隔离等, Database 之间
无法直接互访。Schema 隔离的方式共用资源较多,可以通过 grant 与 revoke 语法便捷地控制不同用户对各 Schema 及其下属对象的权限。
从便捷性和资源共享效率上考虑,推荐使用 Schema 进行业务隔离。
建议系统管理员创建 Schema 和 Database,再赋予相关用户对应的权限。
Database 设计建议
【规则】在实际业务中,根据需要创建新的 Database,不建议直接使用数据库实例默认
的 postgres 数据库。
【建议】一个数据库实例内,用户自定义的 Database 数量建议不超过 3 个。
【建议】为了适应全球化的需求,使数据库编码能够存储与表示绝大多数的字符,建议
创建 Database 的时候使用 UTF-8 编码。
【 关 注 】 创 建 Database 时 , 需 要 重 点 关 注 字 符 集 编 码 (ENCODING) 和 兼 容 性
(DBCOMPATIBILITY)两个配置项。GBase 8s 支持 A、B、C 和 PG 四种兼容模式,分别
表示兼容 O 语法、MY 语法、TD 语法和 POSTGRES 语法,不同兼容模式下的语法行
为存在一定差异,默认为 A 兼容模式。
【关注】Database 的 owner 默认拥有该 Database 下所有对象的所有权限,包括删除权限。删除权限影响较大,请谨慎使用。
Schema 设计建议
【关注】如果该用户不具有 sysadmin 权限或者不是该 Schema 的 owner,要访问 Schema下的对象,需要同时给用户赋予 Schema 的 usage 权限和对象的相应权限。
【关注】如果要在 Schema 下创建对象,需要授予操作用户该 Schema 的 create 权限。
【关注】Schema 的 owner 默认拥有该 Schema 下对象的所有权限,包括删除权限。删
除权限影响较大,请谨慎使用。




