首页 > 其他分享 >openGauss Database和Schema设计

openGauss Database和Schema设计

时间:2024-05-16 14:43:29浏览次数:26  
标签:隔离 Database 语法 openGauss 权限 Schema

Database和Schema设计

openGauss中可以使用Database和Schema实现业务的隔离,区别在于Database的隔离更加彻底,各个Database之间共享资源极少,可实现连接隔离、权限隔离等,Database之间无法直接互访。Schema隔离的方式共用资源较多,可以通过grant与revoke语法便捷地控制不同用户对各Schema及其下属对象的权限。

  • 从便捷性和资源共享效率上考虑,推荐使用Schema进行业务隔离。
  • 建议系统管理员创建Schema和Database,再赋予相关用户对应的权限。

Database设计建议

  • 【规则】在实际业务中,根据需要创建新的Database,不建议直接使用数据库实例默认的postgres数据库。
  • 【建议】一个数据库实例内,用户自定义的Database数量建议不超过3个。
  • 【建议】为了适应全球化的需求,使数据库编码能够存储与表示绝大多数的字符,建议创建Database的时候使用UTF-8编码。
  • 【关注】创建Database时,需要重点关注字符集编码(ENCODING)和兼容性(DBCOMPATIBILITY)两个配置项。openGauss支持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下对象的所有权限,包括删除权限。删除权限影响较大,请谨慎使用。

详情查看:https://opengauss.org

详情查看:https://docs-opengauss.osinfra.cn

标签:隔离,Database,语法,openGauss,权限,Schema
From: https://www.cnblogs.com/renxyz/p/18193266

相关文章

  • openGauss cursor-fetchone
    cursor.fetchone()功能描述此方法提取查询结果集的下一行,并返回一个元组。原型cursor.fetchone()参数无。返回值单个元组,为结果集的第一条结果,当没有更多数据可用时,返回为“None”。示例请参见示例:常用操作。详情查看:https://opengauss.org详情查看:https://docs-open......
  • openGauss dblink
    dblinkdblink是一个可以在openGauss数据库会话中连接到其它数据库的工具,同libpq支持的连接参数一致,也可以在通过在连接串中增加drivername(对应odbc.ini文件中的数据源名称)字段通过ODBC连接异构数据库。libpq连接串详见:链接参数ODBC的使用方法详见:ODBC常用的dblink函数参数......
  • openGauss 执行修改表分区操作时报错
    执行修改表分区操作时报错问题现象执行ALTERTABLEPARTITION时,报错如下。ERROR:startvalueofpartition"XX"NOTEQUALup-boundaryoflastpartition.原因分析在同一条ALTERTABLEPARTITION语句中,既存在DROPPARTITION又存在ADDPARTITION时,无论它们在语句中的顺序是......
  • openGauss connection-commit
    connection.commit()功能描述此方法将当前挂起的事务提交到数据库。注意:默认情况下,Psycopg在执行第一个命令之前打开一个事务:如果不调用commit(),任何数据操作的效果都将丢失。原型connection.commit()参数无。返回值无。示例请参见示例:常用操作。详情查看:https:/......
  • openGauss connection-close
    connection.close()功能描述此方法关闭数据库连接。注意:此方法关闭数据库连接,并不自动调用commit()。如果只是关闭数据库连接而不调用commit()方法,那么所有更改将会丢失。原型connection.close()参数无。返回值无。示例请参见示例:常用操作。详情查看:https://open......
  • openGauss 重建索引失败
    重建索引失败问题现象当Desc表的索引出现损坏时,无法进行一系列操作,可能的报错信息如下。index\"%s\"containscorruptedpageatblock%u",RelationGetRelationName(rel),BufferGetBlockNumber(buf),pleasereindexit.原因分析在实际操作中,索引会由于软件问题或者硬......
  • openGauss CopyManager
    CopyManagerCopyManager是openGaussJDBC驱动中提供的一个API接口类,用于批量向openGauss中导入数据。CopyManager的继承关系CopyManager类位于org.postgresql.copyPackage中,继承自java.lang.Object类,该类的声明如下:publicclassCopyManagerextendsObject构造方法public......
  • openGauss connection-rollback
    connection.rollback()功能描述此方法回滚当前挂起事务。注意:执行关闭连接“close()”而不先提交更改“commit()”将导致执行隐式回滚。原型connection.rollback()参数无。返回值无。示例请参见示例:常用操作。......
  • openGauss connection-cursor
    connection.cursor()功能描述此方法用于返回新的cursor对象。原型cursor(name=None,cursor_factory=None,scrollable=None,withhold=False)参数表1connection.cursor参数关键字参数说明namecursor名称,默认为None。cursor_factory用于创造非标准cursor......
  • openGauss curosr-executemany_query-vars_list
    curosr.executemany(query,vars_list)功能描述此方法执行SQL命令所有参数序列或序列中的SQL映射。原型curosr.executemany(query,vars_list)参数表1curosr.executemany参数关键字参数说明query待执行的SQL语句。vars_list变量列表,匹配query中%s占位符。......