Мне нужно добавить некоторую безопасность для приложения C#/.NET WinForms/Desktop. Я использую серверную часть Oracle DB.
Таблицы просты: Пользователь (ID,Имя), Роль(ID,Роль), UserRole(UserID,RoleID).
Я использую имя учетной записи Windows для заполнения таблицы пользователей. Таблица ролей на данный момент будет просто «Администратор», «Суперпользователь», «Обычный пользователь»…
Поскольку никакие два человека не могут иметь одно и то же имя учетной записи Windows ... даже если я не контролирую это управление именами (netops контролирует, поэтому я хочу использовать учетные записи Windows, поэтому мне не нужно управлять им ;)). Для таблицы ролей у меня снова никогда не должно быть дублирующего значения — я контролирую ввод, их будет только 3 (тактическое приложение исчезнет в течение года). UserRole — это таблица соединений для представления отношений пользователей и ролей «многие ко многим», поэтому суррогатный ключ не оправдан.
Простой вопрос. Зачем использовать идентификатор (int) в таблице "Пользователи и роли"? Какой-то смысл или преимущество здесь? Это что-то из разряда "я всегда так делал"? Или я просто давно этого не делал и забыл причину?