当前位置: 首页 > 知识库问答 >
问题:

如何在从Spring Boot应用程序连接到Oracle DB时指定DBA角色

潘坚白
2023-03-14

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

我的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命令需要sysdba权限才能执行,所以我在application.properties文件中为sysdba用户提供了“sys”及其密码。

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

我试着详细说明

spring.datasource.username=sys as sydba,

但是,这会导致ORA-01017:无效的用户名/密码;登录被拒绝错误。

您能建议我如何从我的应用程序以 sysdba 身份连接并执行 alter 命令吗?注:I刚刚听说不可能从应用程序作为“系统”连接,如果是这样,请建议从应用程序连接以执行可替换插入数据库命令的用户需要什么类型的用户以及需要什么权限 注意2:我的应用程序本身旨在创建和更改基于JSON输入的PDB。它不是由DBA完成的一次性任务。

共有2个答案

公冶和豫
2023-03-14

用户名:SYS as SYSDBA

为我工作

姜华翰
2023-03-14

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

我的申请。属性文件如下所示:

# ===============================
# = 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

你可以在这里找到文件

 类似资料:
  • 喂,伙计们! 这是我的第一次,所以我会尽力做到最好。 我想创建一个应用程序,它是运行与Springboot框架,我想把它连接到一个docker容器嵌入MySQL(但Spring启动应用程序不是运行在docker) 所以我一直关注这个帖子 我已经做了我的docker-comact: 我用这个命令运行它: 一切都很好,所以现在我在Spring靴上改变application.properties: 但当

  • 尝试使用主连接字符串和用户名(数据库名)连接到cosmosdb Mongo API 原因:com.mongodb.mongotieoutexception:在等待与com.mongodb.client.internal.mongoclientdelegate$1@3C291AAD匹配的服务器时,在30000 ms后超时。群集状态的客户端视图是{type=replica_set,servers=[{

  • 获取以下错误: com.mysql.cj.jdbc.exceptions.CommunicationsException:通信链接失败

  • 免责声明:我知道人们通常不会这样做,我使用SQL数据库是出于成本原因,而且我对编程比较陌生。 我正在尝试从我的Android Studio应用程序向我的MariaDB数据库发送SQL脚本。我目前正在为MariaDB实现一个Java数据库连接(JDBC)驱动程序,但我不确定需要包括什么。 我去了JDBC MariaDB驱动程序的下载网站,但是有很多jar文件,我可以选择下载。你怎么知道你需要哪一个,

  • C:\Users\ramachandran.s oracledb@1.2.0安装C:\Users\ramachandran.s\node\u modules\oracledb node gyp rebuild C:\Users\ramachandran.s\node\u modules\oracledb 我错过了什么,请帮忙

  • 我试图连接到我的mongoDb-Atlas从我的node.js应用程序 这是我的代码: 我得到的错误: AssertionError[ERR_ASSERTION]:null=[AssertionError[ERR_ASSERTION]:null==错误:密码包含非法的未转义字符]{at parseConnectionString(/Users/admin/Desktop/node/node_mod