gpt4 book ai didi

java - 在嵌入式 Derby 中启用用户身份验证

转载 作者:行者123 更新时间:2023-11-30 09:15:25 26 4
gpt4 key购买 nike

我有一个程序有一个有两个选项的菜单 首先,创建一个新的数据库 二、打开现有数据库

我的数据库创建部分代码如下

public EmbeddedDerby(String dbName, String userName, String pass) throws SQLException {
String protocol = "jdbc:derby:";

conn = DriverManager.getConnection(protocol + "dist/" + dbName + ""
+ ";create=true;user=" + userName + " " + ";password=" + pass + "");
st = conn.createStatement();
dbmd = conn.getMetaData();
rs = dbmd.getTables(null, "APP", "DBNAME", null);
String sqlTabel = "CREATE TABLE APP.DBNAME"
+ "(NAME VARCHAR(255) not null primary key,"
+ "TEL VARCHAR(10))";
st.execute(sqlTabel);
}

我的数据库打开部分如下

 public void openDataBase(String dbName, String userName, String pass) throws SQLException {
String protocol = "jdbc:derby:";
conn = DriverManager.getConnection(protocol + "dist/" + dbName + ""
+ ";user=" + userName + ";password=" + pass + "");
st = conn.createStatement();
}

我创建新数据库没有问题,但是当我想打开现有数据库时,它不会检查我是否输入了正确的用户名和密码。此外,只要数据库名称存在,它就接受任何用户名和密码。我以为 getConnection 方法会检查用户名和密码的正确性,但看来我完全错了。谁能告诉我出了什么问题以及如何解决这个问题?

最佳答案

系统级 使用 java 设置属性以启用身份验证。

Properties p=System.getProperties();
p.put("derby.connection.requireAuthentication", "true");

Database Level 设置属性以启用身份验证。

CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(
'derby.connection.requireAuthentication',
'true')

关于java - 在嵌入式 Derby 中启用用户身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19900808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com