" Как убедиться, что данные защищены на уровне базы данных, так что даже поставщик платформы не может получить доступ к данным"
- Поскольку вы находитесь в мультитенантной среде, в первую очередь вам потребуется «один клиент для ваших баз данных», поэтому по одной БД на клиента. Затем вам нужно изменить приложение, чтобы выбрать базу данных из какой-либо формы конфигурации.
Для шифрования в Azure вам придется использовать хранилище ключей Azure со своими собственными ключами или собственными ключами клиента. Затем вы настраиваете SQL для использования этих ключей для шифрования данных. см здесь и здесь
если вы хотите, чтобы база данных оставалась мультитенантной, вам необходимо выполнить шифрование на уровне приложения. Однако для этого необходимо, чтобы приложение знало о клиентских ключах, поэтому я не думаю, что это будет правильным решением.
" Даже если мы зашифруем Данные, проблема заключается в том, что любой, у кого есть ключ дешифрования, может дешифровать данные " - да, любой, у кого есть ключи, может получить доступ к данным. Для этого вам необходимо соответствующим образом настроить элементы управления доступом в хранилище ключей, чтобы клиент мог видеть только свои ключи.
В конце концов, поскольку вы являетесь поставщиком услуг ... клиенты должны были бы вам кое-что доверять:)