HANA XS 匿名访问
2016-06-22 18:02
267 查看
声明:
本博客旨在交流SAP内存数据库产品HANA的相关开发技术
文章内容主要来源于官方文档、SCN网友及笔者个人开发经验,欢迎转载但请注明引用
文中所有操作皆在HANA Studio中执行,HDB基于SPS09版本,截止笔者发稿前,HDB最新版本已至SPS12
创建HANA Job
提供HTTP服务
OData数据源
开发SAP UI5 B/S 应用
XS与其它系统可以通过SSL,SAML等方式进行身份认证,实现单点登录。然本文主要演示下如何实现XS匿名访问,以飨同笔者一样的权限管理苦手。
Note:本文假定读者是HANA开发人员,且已掌握了XS服务的开发(笔者后续亦会不定时整理些XS基础开发资料)
笔者在HANA下创建了一个XS项目 XS_DEMO_01
.xsaccess 和 .xsapp 均选取默认值
TEST.xsjs 代码如下:
该服务通过API访问HANA数据库,并将查询到的结果以JSON格式返回
如无意外,会自动跳转到HANA登录界面
我们以拥有SELECT DEMO_TABLE权限的用户登录,浏览器就能正常获得查询结果:
首先登录HANA的XS管理器
http://<hana_host>:80<Instance>/sap/hana/xs/admin/
点击左上角菜单选择XS Artifact Administration
在右侧的列表里面选中我们XS服务所在的Package TEST
最后编辑右侧的权限配置,勾选Public后保存,大家都懂的,这时已显示访问该服务无须任何权限须求
的确,我们这次没有登录界面,但返回的是查询错误,原因就是因为我们是匿名访问,HANA会认为我们没有权限做任何数据库操作
Note:如果不涉及任何数据库层面的操作,XS服务可以正常访问
我们在XS项目文件夹下新建了一个 .xssqlcc 的sql链接配置文件
同时修改TEST.xsjs。可以看到,变化的部分是声明数据连接时,以TEST.xssqlcc 配置的用户访问HANA数据库
最后一步,我们再次登录XS管理器,XS Artifact Administration 中进入到我们的 TEST 项目目录,选中里面的xssqlcc文件,这时我们就可在右边配置匿名访问HANA数据库时的用户
本博客旨在交流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 BW中删除标准DSO中已经激活的请求
- 整理硬盘发现几个以前做的视频,分享下
- SAP R3 Oracle 9i ORA-06413 连接未打开错误
- SAP BASIS常用T-CODE
- sap RFC Trusted/Trusting (权限)
- SAP学习手册-1
- About SAP XI
- 国家电网SAP 烂尾悬疑
- “画皮SAP事件”的进展与争论!
- 某大型SAP系统升级改造解决方案___备份
- 浙江省电力公司SAP、OA信息系统应急演练取得圆满成功
- 恩墨科技为某企业SAP数据库提供紧急援助服务
- SAP BASIS主要工作职责(转自倍思博SAP)
- SAP产品介绍
- SAP公布2006年度初步业绩报告
- 在SAP R3 IDES中恢复SAP*密码
- SAP IDES需要输入access key破解
- SAP HANA 常见问答
- SYBASE IQ 相关资料
- 基于事件驱动过程链理论的SAP项目实施