簡體   English   中英

從 spring 引導應用程序連接到 Oracle DB 時如何指定 DBA 角色

[英]how to specify DBA role while connecting to Oracle DB from a spring boot application

我正在創建一個連接到 Oracle 數據庫實例的 spring 引導應用程序。我的應用程序需要處理 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:無效的用戶名/密碼; 登錄被拒絕錯誤。

您能否建議我如何從我的應用程序連接為 sysdba 並執行更改命令? 注意:我剛剛聽說無法從應用程序連接為“sys”,如果可以,請建議可以從應用程序連接以執行 ALTER PLUGGABLE DATABASE 的用戶類型和用戶需要什么權限命令 注 2:我的應用程序本身旨在根據 JSON 輸入創建和更改 PDB。這不是 DBA 完成的一次性任務。

我使用 spring 引導框架和 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

你可以在這里找到文件

用戶名:SYS 作為 SYSDBA

適合我

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM