点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨! 我正在学习与SAP Cl...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨! 我正在学习与SAP Cl...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨!
我正在学习与SAP Cloud Foundry和SAP HANA服务(SAP Cloud Platform提供)一起使用。
我已成功将SAP HANA服务与应用程序绑定,并使用node.js和模块hdb也成功连接至SAP HANA:
var env = JSON.parse(process.env.VCAP_SERVICES); var hanaData = env.hanatrial [0] .credentials; var client = hdb.createClient({ 主机:hanaData.host, 端口:hanaData.port, 用户:hanaData.user, 密码:hanaData.password });
我可以访问HANA数据库并从'DUMMY'表中选择数据(当我使用git构建应用程序时: https://github.com/SAP/node-hdb )
client.exec('从DUMMY中选择*,功能(错误,行){ client.end(); 如果(错误){ 返回console.error('执行错误:',err); } console.log('Results:',行);
但是我无法创建自己的表,因为我一直都在错误(错误:权限不足:未授权)(使用此类SQL):
创建列表'+ hanaData.schema +'.test(id int不为null,名称nvarchar(256)不为null)
或
创建列表测试(id int不为null,名称nvarchar(256)不为null)
(我想这些SQL代码没有语法错误)
另外,我无法从表SYS.USERS中选择数据来获取有关我的用户授权的信息。 我无法向用户授予任何特权:
ALTER USER'+ hanaData.user +'GRANT在自己的架构上创建任何内容
在模式上进行GRANT SELECT'+ hanaData.schema +'TO'+ hanaData.user +'WITH GRANT OPTION
您能帮我回答吗?
1。 生成的试用版Cloud Foundry帐户的HANA用户是否有创建表的特权?
2。 我的SQL查询中有错误吗?
玛格丽塔嗨,
您是否尝试根据VCAP_SERVICES变量设置架构?
VCAP_SERVICES将分配一个用户和一个特定于特定模式名称的密码-该模式名称代表HDI容器。 该容器将包含一个单一的架构,您将对其具有有限的访问权限。 HDI不允许您控制架构授权-所需的授权已在运行时提供给用户。 据我了解,除hdi服务代理本身之外,没有其他人有权更改数据库对象。 因此,即使使用数据库用户(SBS),您也将无法创建表,视图等。原因是您实际上不应该向HANA DB发出SQL命令来创建这些工件。 您应该使用设计时工件来让HDI Service Broker为您制作必要的SQL命令。 因此,如果需要创建表,则需要首先在hdb模块内的cds工件中对它们进行建模。 构建此模块后,基于hdi的数据库将包含可以使用SQL控制台为其发出select语句的表。
我还了解到,如果您正在开发JPA应用程序,则需要避免DDL生成(ddl-auto = none)。 否则,您的应用程序将永远无法启动-它将抱怨缺少授权。 它确实缺少并且永远不会拥有,因为它不是我们正在谈论的服务代理连接。 您需要让它相信表已经创建。 这种方法的问题在于,您需要执行一些额外的工作:将JPA实体映射到hdb模块内的cds工件中并进行构建。 将您的应用程序绑定到HDI容器后,它将可以正常工作。
希望这会有所帮助!
关于,
伊凡
一周热门 更多>