如何使用 Node.js 访问 SAP HANA Cloud 数据库里的数据

举报
汪子熙 发表于 2022/07/20 14:02:41 2022/07/20
【摘要】 登录 SAP Business Technology Platform,找到 space 下自己创建好的 HANA Cloud 实例,右键菜单选择 Copy SQL Endpoint,将 HANA Cloud 实例的 endpoint 拷贝下来:25eeba68-24ce-4b2d-aaa5-ee8d599ff4a0.hana.trial-eu10.hanacloud.ondemand.co...

登录 SAP Business Technology Platform,找到 space 下自己创建好的 HANA Cloud 实例,右键菜单选择 Copy SQL Endpoint,将 HANA Cloud 实例的 endpoint 拷贝下来:

25eeba68-24ce-4b2d-aaa5-ee8d599ff4a0.hana.trial-eu10.hanacloud.ondemand.com:443

稍后我们在 Node.js 代码里,会使用到。

新建一个 Node.js 应用,安装 hana client 开发库:

npm install --save @sap/hana-client

完整的源代码:

var hana = require("@sap/hana-client");

var connOptions = {
  serverNode: "25eeba68-24ce-4b2d-aaa5-ee8d599ff4a0.hana.trial-eu10.hanacloud.ondemand.com:443",
  encrypt: "true",
  sslValidateCertificate: "false",
  uid: "DBADMIN",
  pwd: "Sgd",
};

var dbConnection = hana.createConnection();

dbConnection.connect(connOptions, function (err) {
  if (err) throw err;
  dbConnection.exec(
    `SELECT TOP 1000
	"REGION",
	"DESCRIPTION"
FROM "PLAIN"."REGIONS"`,
    function (err, result) {
      if (err) throw err;
      for( var i = 0; i < result.length; i++)
        console.log(result[i]);
      dbConnection.disconnect();
    }
  );
});

执行结果:

Node.js 代码里打印的数据库表 REGIONS,来自 PLAIN schema:

注意,使用 DBADMIN 这个用户,只能访问到该用户拥有 access right 的数据库表。

例如我们更换使用 Node.js 访问的数据库表名称为 DB1.COMMUNITY:

此时,Node.js 应用报错:

Error: insufficient privilege: Detailed info for this error can be found with guid ‘6F6F68ED5F58804CB8C7B25D7559D0E0’

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。