Защита паролем формы в MS Access 2003 - PullRequest
1 голос
/ 26 апреля 2011

Я пытаюсь создать логин для своей базы данных и не хочу использовать способ Microsoft для этого.Я хочу, чтобы пользователи входили с именем пользователя и паролем, а затем проверяли эту информацию в таблице "tblUsers".

UserID   LoginID   Level    LevelID
jpurk    jack23     admin    3
krimes   kitty      editor   2
lwalms   low34      reader   1

Я дошел до проверки "UserID" и "LoginID" с помощью dlookup

Nz(DLookup("[LoginID]", "tblUsers", "[UserID] = '" & Me.txtUserID & "'"), "")
 =Me.txtPassword

Проблема, с которой я столкнулся сейчас, заключается в том, что я хочу, чтобы определенные пункты меню были недоступны пользователям без надлежащего уровня;Если они только «редактор» или «читатель», то я не хочу, чтобы у них был доступ к кнопке «административный», где я разместил все формы администратора.

После того, как я использую dLookup для проверкиимя пользователя и пароль, как мне теперь узнать их «уровень» и назначить права на различные пункты меню?Спасибо.

1 Ответ

2 голосов
/ 26 апреля 2011

Предполагая, что ваш DLookup нашел существующее значение LoginID, вы можете использовать другое для получения LevelID этого пользователя.Затем включите / отключите административную командную кнопку на основании их LevelID.

Я предложу что-то подобное в форме загрузки:

Dim lngLevelID As Long
lngLevelID = DLookup("[LevelID]", "tblUsers", "[LoginID] = " & Me.txtLoginID)
Me.cmdAdmin.Enabled = (lngLevelID = 3)

Примечания. Это предполагает, что вы ранее загрузили пользователяНомер логина в текстовое поле с именем txtLoginID.txtLoginID может быть скрыт, если вы не хотите, чтобы пользователи видели его.Или вы можете получить значение LoginID другим способом.

Если у вас есть однозначное совпадение между Level и LevelID, вам не нужно хранить оба значения в tblUsers.Вы можете создать таблицу поиска UserLevels для хранения обоих и сохранить только LevelID в tblUsers в качестве внешнего ключа для соответствующей строки в UserLevels.

Наконец, используемая стратегия может работать, но безопасностьшаткий.В качестве «руководства» для пользователей, желающих следовать правилам, все нормально.Но это может быть легко обойдено даже неискушенными пользователями.Ищите другой подход, если ваши требования безопасности строгие.

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