0

我正在创建一个连接到 Oracle 数据库实例的 Spring Boot 应用程序。我的应用程序需要处理 SQL 命令,如 CREATE PLUGGABLE DATABASE、ALTER PLUGGABLE DATABASE、ALTER SESSION、CREATE TABLESPACE、ALTER USER 等。

我的 Application.properties 如下

spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@x.x.x.x:port/servicename
spring.datasource.username=sys
spring.datasource.password=somepassword

由于 ALTER PLUGGABLE DATABASE COMMANDS 需要 sysdba 权限才能执行,因此我在 application.properties 文件中提供了 sysdba 用户“sys”及其密码。

但是,当我执行命令时,我收到错误“作为 SYS 的连接应该是 SYSDBA 或 SYSOPER”。这个用户具有 sysdba 权限,但是当我从 SQLPLUS 运行时,我在执行更改命令之前提到了 SQLPLUS / as sysdba。

我试过指定

spring.datasource.username=sys as sydba,

但是这会导致 ORA-01017: invalid username/password; 登录被拒绝错误。

您能否建议我如何从我的应用程序连接为 sysdba 并执行更改命令?注意:我刚听说不能从应用程序连接为“sys”,如果可以,请建议可以从应用程序连接的用户需要什么类型的用户以及需要什么权限才能执行 ALTER PLUGGABLE DATABASE命令 注 2:我的应用程序本身旨在根据 JSON 输入创建和更改 PDB。这不是 DBA 一次性完成的任务。

4

1 回答 1

2

我使用 spring boot 框架和 oracle 12c(数据库)。

我的 application.properties 文件如下所示:

# ===============================
# = DATA SOURCE
# ===============================
# Set here configurations for the database connection
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:ORCLCDB
spring.datasource.username=sys as sysdba
spring.datasource.password=Oradoc_db1
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver

# ===============================
# = JPA / HIBERNATE
# ===============================
# Show or not log for each sql query
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create-drop
# Naming strategy
spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl
spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
# Allows Hibernate to generate SQL optimized for a particular DBMS
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle12cDialect
spring.jpa.database-platform=org.hibernate.dialect.Oracle12cDialect

您必须以这种方式指定用户名:

spring.datasource.username=sys as sysdba

你可以在这里找到文件

于 2020-04-06T18:07:17.033 回答