public void connectToAndQueryDatabase(String username, String password) {
Connection con = DriverManager.getConnection
("jdbc:myDriver:myDatabase", username, password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}
// ...
Полагаю, вы знали, что установка соединения с БД обычно включает передачу имени пользователя и пароля.Таким образом, в любой момент у вас есть возможность «переслать» информацию учетной записи, как вы ее указали.Есть ли у «сервера приложений» готовое решение для этого?Кто знает?Мы даже не знаем, какой сервер приложений вы используете ..
Возможно, на ваш вопрос еще нет ответа, потому что вы упускаете множество деталей того, чего вы пытаетесь достичь и в какомситуация (технологии, ..) вы ищете решение.
Вы говорите об использовании функций безопасности базы данных, но не о том, что конкретно вы пытаетесь достичь.Возможно, есть и другие способы, кроме использования учетных записей пользователей (роли и т. Д.).
И, как правило, решение «единого входа» включает отдельный механизм для контроля учетных записей и прав и т. Д.Выбор одной из них снова зависит от того, какие другие системы (app-server, db, ..) вы планируете использовать.
Ищите статьи о защите веб-приложений (предоставляетсяэто то, что вы разрабатываете), аутентификация и авторизация.(Приведенные выше ссылки могут быть устаревшими, но по-прежнему содержат ценную информацию.)
И, безусловно, серьезно относятся к безопасности.
Cheers, Wim
(Хотелось прокомментировать, но получилоськомментарий больше, чем ожидалось)