2009-07-29 3 views
0

Я работаю с таблицами базы данных, содержащими PII и конфиденциальную информацию. Некоторые данные представляют собой информацию, относящуюся к PII и компании. Дизайнерский документ не всегда может быть доступен разработчику, особенно когда данные подвергаются представлению за пределами базы данных (ссылка базы данных Oracle) в другую программу.Именование колонок базы данных с PII и конфиденциальной информацией

Есть ли хорошие соглашения об именах, позволяющие разработчикам знать, что столбец содержит PII или конфиденциальную информацию?

ответ

2

Имена колонок? Слабый.

Используйте таблицу данных PII, которая содержит все атрибуты PII. Храните таблицы PII отдельно от других таблиц с не-PII.

Индивидуальное соединение между не-PII и PII не так дорого. И это обеспечивает ясное, очевидное использование таблиц PII и столбцов PII.

1

Я согласен с S.Lott, но я буду более явным. Если данные чувствительны, то даже БОЛЬШЕ важно, чтобы имена столбцов были выбраны так, чтобы они означали, что они фактически содержат, что типы данных действительно соответствуют содержимому; и ограничения фактически соответствуют проблемному домену.

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

1

Я бы отдельные взгляды (например, таблица Person с PERSON_BASIC, не имеющей PII и PERSON_PII с столбцами PII). Таким образом, если позже будет принято решение о том, что столбец чувствителен (например, Дата рождения), то вы можете легко воссоздать представления, чтобы удалить столбец из основного представления, а не какое-то масштабное упражнение по реструктуризации данных, которое вы получите с отдельными таблицами.

Оптимизатор также улучшает соотношение между столбцами в одной таблице (и вы ожидаете, что со временем это улучшится). Как только вы начнете присоединяться к таблицам, отличным от PII, к таблицам PII, вы просто усложнили его.

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

Рассмотрите возможность использования role, защищенного паролем или пакетом для управления доступом к представлению/столбцам PII.

CONTEXT может сделать это тоже. Они вынуждены вызывать пакет, чтобы установить контекст, прежде чем они увидели столбцы. Вид может быть

SELECT name, date_of_birth, 
     case when SYS_CONTEXT('SEC','xxx') ='ALLOW' THEN ssn END 
from ...