关于HDI容器机制的说明

2020-09-22 20:27发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好 我正在了解使用HDI容...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好

我正在了解使用HDI容器构建数据库对象的过程。 以下是我要澄清我的理解是否正确的几点,以及关于我不知道的几个问题。 要求您分享您的想法。

很抱歉在下面列出许多要点,但是我认为所有这些要点都与同一概念相关,因此试图将它们合并在一个地方。

说明:-

一个项目有3个数据库模块[HDB modules],在运行时,每个模式分别有3个容器。

i)同样,对于每个HDB模块,将创建如下三个模式

a)容器

b)容器#DI

c)container#OO

每个容器都有一个技术用户(或)应用程序用户[HDI_USER]和数据库用户[USER]。

_______________________________________________________________________

例如,如果一个项目有一个HDB模块,该模块具有一个容器以及与该容器关联的用户。 如果我们试图从该容器的表部分中查询数据,则涉及该容器的技术用户[HDI_USER]从该容器的表部分中读取数据。

________________________________________________________________________

当我们尝试访问此容器之外的对象时,有以下两种情况

i)从其他HDI容器模式访问表-在这种情况下,我们必须创建.hdbrole作为源容器的一部分,并在目标HDB模块中将此hdbrole引用为具有必需特权的.hdbsynonymgrantor文件的一部分,作为.hdbsynonymgrantor文件的一部分。 目标容器,还请在目标HDB模块的.yaml文件中的所需资源中引用.hdbrole

ii)从复制的架构(或非HDI容器架构)访问表-创建用户提供的服务[CUPS],然后使用.hdbsynonymgrantor文件将其分配给此容器的HDI用户。

________________________________________________________________________

反之亦然,就像在非HDI场景中访问HDI容器的表一样,我们需要为此容器创建.hdbrole并将此角色授予容器#DI模式的数据库用户(或)调用过程部分以授予 非HDI方案的必要授权。

问题:-

  1. 可以更改生成的架构(或)容器名称的任何方式吗?
  2. 容器的数据库用户的作用是什么?
  3. 在为跨容器方案创建.hdbsynonymgrantor时,我遇到了一种语法,其中将源容器的GUID指定为文件的一部分,但是如果我们在质量和生产中部署相同的模块,则ID可能会更改- 如果我的理解是错误的,请纠正我。
  4. 从开发人员团队的角度来看,如果团队中有多个成员,则每个用户都将拥有对象作为自己容器的一部分,但是当我们必须打包解决方案以在质量和生产系统中部署时,这是如何工作的 当我们在团队中工作时,该应用程序仍将具有多个容器,这些容器具有跨容器访问(或其他方式)。 4)另外,据我了解,容器机制是为了支持github而引入的,但无法理解这两者之间是如何关联的(或相互影响的),对此有任何见解会有所帮助。
2条回答
2020-09-22 21:04 .采纳回答

1。 是的,生成的名称可以在其他系统上的传输/创建时更改。 因此,您不应直接与生成的名称进行交互。

2。 数据库用户是容器架构内任何对象的所有者/创建者。

3。 您应该使用SERVICE_REPLACEMENTS选项来使用别名,而不是对实际的外部容器或用户提供的服务名称进行编码。 请参阅openSAP课程中的示例: https ://github.com/SAP/com.sap.openSAP.hana5.example/blob/master/mta.yaml

4。 为什么会有多个容器? 团队中的每个人都应该真正创建一个单独的容器。 每个人都签出他们的项目,并有一个单独的容器实例,但是当您在Git中将所有源合并回去,然后构建MTA时,应用程序的下游安装将只有一个容器。

一周热门 更多>