You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Web项目使用JDBC连接数据库时抛出AccessControlException权限错误

Web项目使用JDBC连接数据库时抛出AccessControlException权限错误

嘿,遇到这个权限问题别慌,我来帮你捋捋问题根源和解决办法:

这个错误本质是你的Web项目运行在启用了SecurityManager的环境中,MySQL JDBC驱动初始化AbandonedConnectionCleanupThread的时候,需要读取com.mysql.cj.disableAbandonedConnectionCleanup这个系统属性,但当前的安全策略没有授予读取该属性的权限,所以抛出了AccessControlException。

下面是几种可行的解决方案:

  • 调整Java安全策略文件
    找到你的JRE或者Web容器对应的安全策略文件(比如JRE目录下的lib/security/java.policy,如果是Tomcat则是conf/catalina.policy),添加如下权限配置:

    grant {
        permission java.util.PropertyPermission "com.mysql.cj.disableAbandonedConnectionCleanup", "read";
    };
    

    配置完成后记得重启你的应用或容器,让策略生效。如果是多应用共享容器,建议修改容器级别的策略文件,避免影响全局JRE的安全配置。

  • 直接禁用废弃连接清理线程
    如果你不需要这个线程的功能,可以在项目启动时直接通过JVM参数设置该属性,跳过驱动对属性的读取判断:
    在启动命令里添加:

    -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true
    

    比如Tomcat的话,可以在catalina.sh(Linux)或catalina.bat(Windows)里添加这个JVM参数。

  • 谨慎关闭SecurityManager(仅限信任环境)
    如果你的应用运行在完全信任的环境中(比如本地测试、内部私有服务器),可以考虑关闭SecurityManager,从根源上避免这类权限限制问题。不过这个操作会降低应用的安全防护级别,生产环境不建议这么做。

备注:内容来源于stack exchange,提问作者Pavan kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 12:44:30