0

すべてのユーザーは、Oracle データベースにログイン/パスワードを持っています。私はコードをもっている:

Connection con;
Statement stmt = null;
String query = "SELECT user FROM dual";
try {
    dataSource = (DataSource) new InitialContext().lookup("jdbc/MyDataSource");
} catch (NamingException e) {
    throw new ExceptionInInitializerError(e);
}
try {
    System.out.println("name, password:" + name + "|" + password);
    con = dataSource.getConnection(name, password);
    stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery(query);
    while (rs.next()) {
        System.out.println("User:" + rs.getString("USER"));
    }
    con.close();
    return true;
} catch (SQLException ex) {
    Logger.getLogger(UserInfoServiceOracle.class.getName()).log(Level.SEVERE, null, ex);
    return false;
}

正しいパスワードを入力すると、次のユーザーは任意のログイン/パスワードを使用して、最初の正しいユーザーからのログイン/パスワードを使用して getConnection できます。

ログ:

INFO:   name, password:correctUser|correctPassword
INFO:   User:correctUser
INFO:   name, password:jhkjhkjh|khkjhkj
INFO:   User:correctUser
4

3 に答える 3

0

データベースのセキュリティと、アプリケーションの周りに設計する必要があるセキュリティを混同していると思います。

アプリケーションは、データベースへの資格情報を (おそらくプロパティ ファイルを通じて) 認識し、データソースを構築します。ユーザーは、アプリケーションで自分自身を認証すると、アプリケーションの機能 (およびデータソース) にアクセスできます。

于 2013-07-19T12:30:34.333 に答える