Разрабатывается многопользовательское web-приложение. В рамках приложения пользователи делятся на группы с различными правами доступа к компонентам приложения.
Есть необходимость группы пользователей приложения отобразить на БД, тоесть на основании необходимых для группы функций на БД создавать группу в БД с правами только на необходимые элементы (таблицы, функции, представления и пр).
Тк администратор приложения может изменять права доступа групп, то есть необходимость также организовать параллельное изменения прав групп(ролей) БД.
предполагаемый алгоритм исполнения приложения относительно авторизации
1. старт приложения производится под пользователем с правами только на чтение полей логина и хеша пароля таблицы пользователей БД (никаких других прав у этого пользователя нет)
2. если авторизация успешна, то приложение получае логин и пароль соответствующей роли в БД и пересоединяется под ними
3. дальнейшее выполнение программы происходит под соответствующей ролью
Проблема с хранением паролей к БД - для пересоединения с базой пароли необхоимо хранить в открытом доступе. Собственно вопрос в том - как хранить пароль ролей к БД, чтобы при несанкционированном доступе (взлом ftp, sshили sql инъекция) злоумышленник не смог получить эти пароли, а приложение могло
а зачем злоумышленику пароли
а зачем злоумышленику пароли пользователей после взлома SQL?
Если авторизация производится
Если авторизация производится средствами БД, то никакого доступа на чтение хешей паролей у обычного пользователя не будет. Это раз. Никто не запрещает вам сделать хранимую процедуру, у которой будут права на чтение хэшей, но при этом у пользователя который её запускает будут права только на запуск этой процедуры, но никак не на чтение тех таблиц с хэшами - это два.