java-使用身份验证的Derby嵌入式数据库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-使用身份验证的Derby嵌入式数据库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2820字,纯文字阅读大概需要5分钟。
内容图文
默认情况下,Apache Derby嵌入式数据库不需要身份验证.我们可以在系统级别或数据库级别启用身份验证.我使用Java代码启用了系统级支持.
Properties p=System.getProperties();
p.put("derby.connection.requireAuthentication", "true");
然后,我尝试使用此连接URL创建数据库.
jdbc:derby:derbysample;create=true;user=root;password=root
当我运行这个
DriverManager.getConnection(connectionURL);
它创建数据库文件夹还会引发有关身份验证的错误吗?如何使用凭证创建数据库?
java.sql.SQLNonTransientConnectionException: Connection authentication
failure occurred. Reason: Invalid authentication.. at
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown
Source) at
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown
Source) at
org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown
Source) at
org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown
Source) at
org.apache.derby.impl.jdbc.EmbedConnection.checkUserCredentials(Unknown
Source) at org.apache.derby.impl.jdbc.EmbedConnection.(Unknown
Source) at
org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown
Source) at org.apache.derby.jdbc.InternalDriver.connect(Unknown
Source) at org.apache.derby.jdbc.InternalDriver.connect(Unknown
Source) at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown
Source) at
java.sql.DriverManager.getConnection(DriverManager.java:664) at
java.sql.DriverManager.getConnection(DriverManager.java:208) at
derbytest.DerbyTest.createConnection(DerbyTest.java:56) at
derbytest.DerbyTest.main(DerbyTest.java:39) Caused by: ERROR 08004:
Connection authentication failure occurred. Reason: Invalid
authentication.. at
org.apache.derby.iapi.error.StandardException.newException(Unknown
Source) at
org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown
Source) … 15 more
解决方法:
首先使用属性create = true指定要创建的数据库URL.
jdbc:derby:derbysample111;create=true
然后使用DriverManager获取连接.如果不存在,它将创建一个数据库.
conn = DriverManager.getConnection("jdbc:derby:derbysample111;create=true");
conn.setSchema("APP");
然后在derby中启用身份验证并设置用户和密码.它将设置数据库级别的身份验证.
Statement s = conn.createStatement();
s.executeUpdate("CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(\n"
+ " 'derby.connection.requireAuthentication', 'true')");
s.executeUpdate("CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(\n"
+ " 'derby.authentication.provider', 'BUILTIN')");
s.executeUpdate("CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(\n"
+ " 'derby.user.root', '12345')");
s.executeUpdate("CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(\n"
+ " 'derby.database.propertiesOnly', 'true')");
只需要设置一次.然后可以使用此URL访问您的数据库
jdbc:derby:derbysample111;create=true;user=root;password=12345
内容总结
以上是互联网集市为您收集整理的java-使用身份验证的Derby嵌入式数据库全部内容,希望文章能够帮你解决java-使用身份验证的Derby嵌入式数据库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。