Ролевой или пользовательский доступ к шифрованию TDE в Oracle

Env: Oracle 11g DB с приложением на основе Java

Мы хотим зашифровать данные в нашей базе данных для нескольких конфиденциальных столбцов таблицы.
Мы хотим, чтобы эти столбцы были расшифрованы и видимы для группы пользователей A. И мы НЕ хотим, чтобы эти зашифрованные столбцы были видимыми. другому набору пользователей B. Но этот набор пользователей B должен иметь возможность видеть остальные незашифрованные столбцы таблицы.

Из различных статей и сообщений я понимаю, что TDE выполняет шифрование и дешифрование трансперантно и на уровне столбцов, но мне не удалось найти четкую информацию, возможно ли вышеупомянутое шифрование на основе пользователей / ролей на уровне столбцов или нет.

Можем ли мы добиться этого с помощью TDE?


person Chitkala    schedule 21.01.2015    source источник
comment
Я думаю, что это могло быть, но это было бы проблемой в крупных корпоративных средах, потому что TDE не поддерживает столбцы ссылочной целостности. Пока это предварительное условие (и другие) соблюдено, оно должно работать. Какие особенности вы ищете? Вот наглядный пример: oracle-base.com/articles/10g /   -  person AnBisw    schedule 21.01.2015


Ответы (1)


Я не администратор баз данных, но, исходя из моего понимания TDE, шифрование не заметно при просмотре из любого запроса. Он только шифрует данные в файле данных на диске, поэтому их нельзя прочитать, если они выгружены непосредственно из файла.

У хорошего администратора базы данных может быть лучший ответ, но я бы посоветовал сразу же вот что.

Имейте два поля для конфиденциальных данных. Один ясен (хотя TDE может быть хорошей идеей), а другой каким-то образом запутан. Эти поля можно нормализовать в отдельную таблицу. Не разрешайте доступ непосредственно к таблице, вместо этого используйте представление. Представление может быть определено как:

create view TableName as
  select ...,
         case ROLE when 'A' then clear_field else obfuscated_field end as FieldName,
         ...
  from  SensitiveTable
  join  PossibleNormalizedTable on ... ;

Вам также понадобятся триггеры для представления. Если только A может четко видеть это поле, вероятно, только A сможет вставить и обновить его.

person TommCatt    schedule 21.01.2015