首页 > 解决方案 > 连接到设置为生产数据库的 Oracle 数据库时无法启动 Corda 节点

问题描述

我的设置细节如下

我正在通过参考https://docs.corda.net/docs/corda-enterprise/4.6/node/operating/node-database-admin.html进行生产数据库设置。我为每个节点创建了 2 个数据库模式(管理员和受限访问)。我根据文档中的给定更新了 node.conf 数据库连接。我还允许 my_user 访问 my_admin_user

dataSourceProperties = {
    dataSourceClassName = "oracle.jdbc.pool.OracleDataSource"
    dataSource.url = "jdbc:oracle:thin:@<host>:<port>:<sid>"
    dataSource.user = my_user
    dataSource.password = "my_password"
}
database = {
    schema = my_admin_user
}

但是,当我启动节点时得到以下错误

2021-06-09T16:36:16,400 ERROR databaseInitialisation DatabaseInitialisation(id="rK2VjTKa";status="error";error_code="1";message="**ORA-01031: insufficient privileges**  [Failed SQL: CREATE TABLE my_user.DATABASECHANGELOG (ID VARCHAR2(255) NOT NULL, AUTHOR VARCHAR2(255) NOT NULL, FILENAME VARCHAR2(255) NOT NULL, DATEEXECUTED TIMESTAMP NOT NULL, ORDEREXECUTED INTEGER NOT NULL, EXECTYPE VARCHAR2(10) NOT NULL, MD5SUM VARCHAR2(35), DESCRIPTION VARCHAR2(255), COMMENTS VARCHAR2(255), TAG VARCHAR2(255), LIQUIBASE VARCHAR2(20), CONTEXTS VARCHAR2(255), LABELS VARCHAR2(255), DEPLOYMENT_ID VARCHAR2(10))]")

2021-06-09T16:36:16,413 ERROR net.corda.node.internal.NodeStartupLogging **ORA-01031: insufficient privileges**
  [Failed SQL: CREATE TABLE my_user.DATABASECHANGELOG (ID VARCHAR2(255) NOT NULL, AUTHOR VARCHAR2(255) NOT NULL, FILENAME VARCHAR2(255) NOT NULL, DATEEXECUTED TIMESTAMP NOT NULL, ORDEREXECUTED INTEGER NOT NULL, EXECTYPE VARCHAR2(10) NOT NULL, MD5SUM VARCHAR2(35), DESCRIPTION VARCHAR2(255), COMMENTS VARCHAR2(255), TAG VARCHAR2(255), LIQUIBASE VARCHAR2(20), CONTEXTS VARCHAR2(255), LABELS VARCHAR2(255), DEPLOYMENT_ID VARCHAR2(10))]

标签: corda

解决方案


在 node.conf 的 dataSourceProperties 下添加以下条目后问题已解决

connectionInitSql="alter session set current_schema=my_admin_user"

推荐阅读