如何管理模式的odata源的安全性?

2020-08-17 22:32发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好, 我已经使用ecli...

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

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


专家您好,

我已经使用eclipse生成了两个odata服务。 为此,请创建一个动态Web项目并启用persistence.xml。 之后,我在类中一张一张地创建表,然后将它们添加到persistence.xml中。 我将其导出为.war文件,并将其导入SCP的Java应用程序部分。 我建立了一个绑定,该绑定具有我先前创建的具有约束力的 schema ,并且该URL生成了具有所有功能性odata的URL。

我只能创建模式。

我已经在以下博客中进行了解释:

/img/questions/13003660/how-to-create-a-third-odata-service-with-schemas-a.html

现在的问题是,在进入odata服务(要求用户名和密码)时,您可以与任何SCP用户一起输入

如何在ODATA模式中添加工具安全管理器?

另一个细节是,当我进入程序HANA STUDIO时,图表显示时没有任何状态,并且在访问时会自动生成一个用户,而使用HANA XS(在其他区域)创建的用户确实具有状态并且具有 用户已经定义。

因此,它们都是使用相同的Eclipse WAR项目创建的(仅更改了名称)。 为什么它们两者有这么多差异? 我知道一个使用架构,另一个使用HANA XS。 是否建议使用方案? 为什么不允许我访问其他部分? 为什么用户会自行生成? HANA XS的odata中不会出现安全问题。 只有某些用户可以在那里访问。

HANA XS vs SCHEMA->




src="/img/storage/temp/1812525-hgvck.png" alt ="">
< img alt ="">

如果在我的网站上有任何有关使用架构的文档,那将很有帮助。 我总是可以找到有关HANA XS和HANA MDC的文档和数据库示例。

问候。

(86.2 kB)
1条回答
落灬小鱼
2020-08-17 23:30

您好埃里克·德乔

1)如何在ODATA模式中添加实施安全管理器?

您没有在OData Schema中实现安全性。 您必须在角色中实现安全性并将其分配给用户。 这将允许用户在该特定架构中执行特定操作。 在HANA Classic中,您拥有所谓的对象特权。 在这里,您会发现它的作用。 请搜索博客,以了解如何将其用于您的HANA数据库中的所有架构。

https://help.sap.com/viewer/b3ee5778bc2e2.0a762 .02/zh-CN/fb0f9b103d6940f28f3479b533c351e9.html

一旦有了适当的设置,只有具有您创建的角色的用户才能运行您在Java中实现的基础查询。 在您的服务中拥有一个与HANA Classic中分配给同一用户的角色相匹配的安全角色是明智的。 查看YouTube上的HANA学院播放列表,以了解更多信息。 我还指出了开放式SAP Hana课程。 所有这些都是免费的,您可以免费学习很多。

2)" 它们都是用相同的Eclipse WAR项目创建的(仅更改了名称)。为什么它们都有如此大的差异?我知道一个使用架构,另一个使用HANA XS。/em> 为什么不允许我访问其他部分?"

我不确定您要问的是什么,但这是我关于这个问题的两分钱。 在HANA Studio中,创建连接时必须指定一个用户。 如果选择拥有架构的用户,则该特定连接的结构将仅显示该用户有权访问的存储库和目录中的对象。 特别是,如果您没有为架构所有者用户分配任何其他角色,则该结构可能仅显示属于该 schema的对象。 换句话说,显示的结构将始终反映用户的权限。 请记住,允许架构所有者将授权分配给其他用户。 因此,如果您需要向该模式的其他用户授予访问权限,则建议您使用所有者创建连接,然后运行将授权授予其他用户的sql语句。

3)是否建议使用方案?

这取决于您要实现的目标。 始终指示使用模式来实现关注点分离。 假设您有一个开发人员团队,并且希望他们在HANA中创建他们的数据库工件,但是您不希望他们与另一个团队的冲突。 在这种情况下,您希望每个团队都针对数据库中的不同架构。 是的,还有其他用例,因此这将视情况而定。

4)为什么用户会自我生成?

我不知道您对自我生成的用户的含义。 您能否澄清一下?
在特定情况下,HANA中会自动生成应用程序用户,但是我认为这不是您的意思。 您是在说将应用程序绑定到HANA并启动它时,它会在数据库中创建一个Schema吗? 在这种情况下,绑定应用程序时,必须指定一个用户。 如果用户不存在,则根本无法绑定。 因此,我很难理解在哪种情况下您会在Neo中自动生成用户。

5)" 如果在我的网站上有任何有关使用架构的文档"

我已经指出了HANA授权文档,因为您似乎不了解HANA Classic中的安全性工作原理。

注意:HANA XS与HANA Classic(这是Neo中的版本)相同。 MDC代表多容器数据库容器。 在开发方面,只有两种方法:经典和高级。 两者之间的主要区别在于Advanced专注于12因子Apps开发,因此它很大程度上基于Microservices开发。 为了实现这一点,它使用了与Cloud Foundry相同的概念。

BTW:为什么要用Java实现OData? 您是否知道HANA有一个设计时工件(.xsodata),可根据您目录中的任何运行时对象(例如表,视图和计算视图)来实现OData服务。 我建议使用此工件。 它更容易部署,并且使您可以将开发工作重点放在业务逻辑上。 一旦迁移到Cloud Foundry(并且最终将不得不这样做),它将使您的生活更轻松。 CF上的HANA中使用的安全功能与Classic上使用的安全功能不同。 SAP现在专注于CDS语言语法来定义数据库模型和OData服务-现在称为CAP(云应用程序编程模型)。 我建议您转向该技术,而不是将时间花在Neo和HANA Classic等旧技术上。 CAP上现在有一个开放式SAP课程-再次免费。

希望这会有所帮助。

最诚挚的问候,
伊万