Вопрос, наверное, не столько технический, сколько "политический"...
В последнее время практически ко всем информационным системам есть требование вида "Система управления базами данных (СУБД) поддерживает шифрование данных"
Я в целом понимаю, что требование бредовое и выставлено человеком, не слишком разбирающимся в этом всём. Ну или я дурак и чего-то не понимаю, такое тоже допускаю.
Вопрос тем не менее остаётся: каким образом можно обеспечить выполнение этого требования?
С моей точки зрения нужно шифровать диск, на котором хранятся файлы СУБД (любыми средствами, самое простое — Linux dm-crypt). Но это не поддержка шифрования со стороны СУБД, к этому можно прикопаться.
Можно шифровать какие-то конкретные поля в конкретных таблицах, но тогда не получится использовать их в запросах, т.е. очень сильно ограничена область применения такого шифрования.
В Oracle есть т.н. Transparent Data Encryption. Его суть очень сильно напоминает шифрование на уровне диска, т.е. защищает данные в случае кражи физического носителя. Но оракл дорогой и хочется использовать PostgreSQL, в котором такой фичи нет. Есть некая страница с "мыслями" и какими-то старыми патчами (
Transparent Data Encryption), но, я так понимаю, они не материализовались по большому счёту. Есть страница в документации (
Encryption Options), там тоже аналога полного шифрования нет.
Ещё нашёл такой продукт:
POSTGRESQL TRANSPARENT DATA ENCRYPTION: набор патчей, добавляющих шифрование (либо бесплатно самому собирать старую версию, либо за деньги готовая сборка с поддержкой, как я понял, но вообще информации не много по этому продукту).
Как такой вопрос решаете, если сталкивались?