您的位置:首页 > 其它

HANA XS 匿名访问

2016-06-22 18:02 267 查看
声明:

本博客旨在交流SAP内存数据库产品HANA的相关开发技术

文章内容主要来源于官方文档、SCN网友及笔者个人开发经验,欢迎转载但请注明引用

文中所有操作皆在HANA Studio中执行,HDB基于SPS09版本,截止笔者发稿前,HDB最新版本已至SPS12

XS

XS是HANA基于Spider Monkey的JS引擎。其主要应用场景如下:

创建HANA Job

提供HTTP服务

OData数据源

开发SAP UI5 B/S 应用

XS与其它系统可以通过SSL,SAML等方式进行身份认证,实现单点登录。然本文主要演示下如何实现XS匿名访问,以飨同笔者一样的权限管理苦手。

Note:本文假定读者是HANA开发人员,且已掌握了XS服务的开发(笔者后续亦会不定时整理些XS基础开发资料)

Step 1.1 XS服务创建



笔者在HANA下创建了一个XS项目 XS_DEMO_01

.xsaccess.xsapp 均选取默认值

TEST.xsjs 代码如下:

var connection = $.hdb.getConnection();
var str_sql = 'SELECT * FROM "TEST"."TEST::DEMO_TABLE.DEMO_TABLE"';
var result = connection.executeQuery(str_sql);

$.response.contentType = "text/html";
$.response.setBody(JSON.stringify(result));


该服务通过API访问HANA数据库,并将查询到的结果以JSON格式返回

Step 1.2 XS服务测试

在浏览器访问http://<hanahost>:80<instance>/TEST/XS_DEMO_01/TEST.xsjs

如无意外,会自动跳转到HANA登录界面



我们以拥有SELECT DEMO_TABLE权限的用户登录,浏览器就能正常获得查询结果:



Step 2.2 Public权限设置

如果我们想实现免身份认证的方式,来访问这个XS服务,那请按下面操作:

首先登录HANA的XS管理器

http://<hana_host>:80<Instance>/sap/hana/xs/admin/

点击左上角菜单选择XS Artifact Administration



在右侧的列表里面选中我们XS服务所在的Package TEST



最后编辑右侧的权限配置,勾选Public后保存,大家都懂的,这时已显示访问该服务无须任何权限须求



Step 2.3 XS服务测试

清除浏览器缓存后,我们再次访问XS服务,会见到如下界面:



的确,我们这次没有登录界面,但返回的是查询错误,原因就是因为我们是匿名访问,HANA会认为我们没有权限做任何数据库操作

Note:如果不涉及任何数据库层面的操作,XS服务可以正常访问

Step 2.4 xssqlcc文件配置

为了解决数据库导致的权限问题,我们还须要进行额外的配置

我们在XS项目文件夹下新建了一个 .xssqlcc 的sql链接配置文件



{
"description" : "TEST"
}


同时修改TEST.xsjs。可以看到,变化的部分是声明数据连接时,以TEST.xssqlcc 配置的用户访问HANA数据库

var connection = $.hdb.getConnection({
"isolationLevel": $.hdb.isolation.REPEATABLE_READ,
"sqlcc": "TEST.XS_DEMO_01::TEST"
});
var str_sql = 'SELECT * FROM "TEST"."TEST::DEMO_TABLE.DEMO_TABLE"';
var result = connection.executeQuery(str_sql);

$.response.contentType = "text/html";
$.response.setBody(JSON.stringify(result));


最后一步,我们再次登录XS管理器,XS Artifact Administration 中进入到我们的 TEST 项目目录,选中里面的xssqlcc文件,这时我们就可在右边配置匿名访问HANA数据库时的用户



Step 2.5 匿名访问实现

完成上述所有步骤后,清空浏览器缓存,访问XS服务,这次服务器成功返回了结果,且未要求身份认证,匿名访问成功实现。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sap hana XS