Как записать разные типы аутентификации (имя пользователя / пароль против токена) в журнале аудита - PullRequest
1 голос
/ 09 апреля 2010

У меня есть два типа пользователей для моей системы: обычные пользователи с именем пользователя / паролем и делегированные авторизованные учетные записи через OAuth (то есть с использованием идентификатора токена). Информация, которая хранится для каждого, довольно различна, и управляется различными подсистемами. Однако они взаимодействуют с одними и теми же таблицами / данными в системе, поэтому мне нужно вести контрольный журнал независимо от того, изменили ли данные пользователь или пользователь на основе токенов.

Мое решение на данный момент состоит в том, чтобы иметь таблицу с именем что-то вроде AuditableIdentity , а затем два типа наследуют эту таблицу (либо в одной таблице, либо в виде двух отдельных таблиц с 1 по 1 PK с AuditableIdentity. Все операции будут использовать общий AuditableIdentity PK для столбцов CreatedBy, ModifiedBy и т. Д.

Нет никаких ограничений FK для столбцов аудита, так что любой текст может быть там, но я хочу простой способ легко определить, был ли это человек или система, которая внесла изменение, и присоединиться к одному AuditableIdentity стол кажется чистым способом сделать это?

Есть ли лучшая практика для этого сценария? Является ли это подходящим способом решения проблемы - или вы не будете возиться с общей таблицей и будете просто полагаться на объединения (к двум отдельным несвязанным таблицам пользователей / токенов), чтобы определить, какой тип пользователя соответствует каким записям аудита?

1 Ответ

0 голосов
/ 09 апреля 2010

Решение с одним родительским табелем и двумя дочерними таблицами с отношением 1-1 PK-FK будет работать нормально. Вы можете добавить дополнительное поле в таблицу AuditableIdentity, указывающее, является ли строка TokenIdentity или NormalIdentity.

PK AuditableIdentity является ключом для всех контрольных журналов.

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