mysql - 使用 DriverManagerDataSource bean 设置 noAccessToProcedureBodies

标签 mysql spring jakarta-ee jdbc jdbctemplate

大家好,Java Geeks,

我在 MySQL 数据库中有很多存储过程,我可以从 .NET 中成功调用它们。但是,当从 Java Spring SimpleJdbcCall.execute() 调用它们时,出现异常,告诉我用户没有这样做的权限。但这显然不是这种情况,因为同一用户可以从 CLI 和 .NET 访问它。

因此我想设置这个参数:

noAccessToProcedureBodies=true

但是,当在下面的连接器 bean 的 url 中添加参数时,它认为尾随字符是数据库名称的一部分。

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

    <property name="driverClassName">
        <value>com.mysql.jdbc.Driver</value> 
    </property>

    <property name="username">
        <value>user</value>
    </property>

    <property name="url">
        <value>jdbc:mysql://192.168.0.1:3306/database/?noAccessToProcedureBodies=true</value>
    </property>

    <property name="password">
        <value>powerpass</value>
    </property>

</bean>

我一直在考虑覆盖 getConnectionProperties方法,但我认为这不是正确的方法?

谢谢大家

最佳答案

我自己找到了答案,而且很有效。

与其使用结尾斜杠 "database/?noAccess...",不如保留它:

<property name="url">
        <value>jdbc:mysql://192.168.0.1:3306/database?noAccessToProcedureBodies=true</value>
</property> 

希望对某人有所帮助!

关于mysql - 使用 DriverManagerDataSource bean 设置 noAccessToProcedureBodies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13304526/

相关文章:

java - 如何在 Spring Boot 中将 POST 请求从一个 Web 应用程序正确转发到另一个 Web 应用程序?

java - Spring @ExceptionHandler 测试被调用,但它不是使用错误体而是使用 Mockito 重新抛出异常

java - 访问 Spring/Maven 应用程序中的资源文件夹

php - 滚动销售平均算法实现 MySQL + PHP

python - 使用 python mysql.connector 转义字符串

php - jQuery .animate 不起作用

java - EJB3通信机制

php - 采用我当前的系统以包含实时通知

java - 带连字符/破折号的安全角色名称

mysql - 删除父级时 Hibernate/MySQL 级联错误