powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Возможно ли заблокировать пользователей
3 сообщений из 3, страница 1 из 1
Возможно ли заблокировать пользователей
    #39679681
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Возможно ли заблокировать пользователей в случае неверного введения логина или пароля более чем 3 раза в MS SQL 2008R2 средствами Visual Foxpro 8?
Т.е. имеется база данных в MS SQL 2008R2 и приложение на Visual Foxpro 8.
Когда пользователь вводит неверно свой логин и пароль более чем 3 раза, как мне заблокировать пользователя?
В MS SQL 2008R2 вручную можно установить через свойство конкретного пользователя и установить галку в Status.
...
Рейтинг: 0 / 0
Возможно ли заблокировать пользователей
    #39679697
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Галка ставится/снимается вызовом sqlexec(h, "...")
Что написать вместо "..." чтобы установить нужную галку - это спроси в форуме по MSSQL

Но чтобы выполнить это "..." - тебе необходимо подключиться к MSSQL под пользователем с правами на смену этой галки, т.е. под админом. Т.е. внутри твоей проги должны быть зашиты админский логин/пароль MSSQL, что большая дыра в плане безопасности.
...
Рейтинг: 0 / 0
Возможно ли заблокировать пользователей
    #39680636
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том, что чтобы что-то изменить в базе, надо сначала к ней подключиться. А именно подключиться и не удается. Чтобы гарантировать подключение нужно где-то, как-то, в явном виде записать логин/пароль на это самое подключение, что само по себе делает почти бессмысленным сам факт ввода логина/пароля

Собственно, вариантов я вижу два

Вариант 1

1. Создай отдельную служебную таблицу со списком логинов (без паролей!) и признаком активности пользователя
2. Создай специального пользователя на MS SQL у которого будет доступ на чтение/изменение только одной этой таблицы

Логика входя в приложение

1. При вводе логина/пароля сначала подключаешься к базе под этим служебным пользователем и смотришь, активен ли данный логин. Если нет, то сразу сообщение об ошибке
2. Если трижды не смогли войти с указанным логином/паролем снова подключаешься под этим служебным пользователем и ставишь/снимаешь галку активности пользователя

Это тоже некоторое нарушение безопасности, ведь логин/пароль служебного пользователя придется зашить в код приложения. Но это все-таки не администратор и контролирует он только одну таблицу. Хотя, можно для этого пользователя настроить DSN, но это дополнительные организационные сложности

Вариант 2

Хранить список исключенных пользователей (логинов) вне базы данных. Т.е. в некоем файле на общем ресурсе. Это может быть как обычный текстовый файл TXT, так и какой-нибудь структурированный файл (DBF, INI, XML)

Но здесь возникают сложности с общим доступом на изменение к таким файлам. Да и с секретностью те же проблемы...

-------------------

Альтернатива - это каким-то образом средствами самого SQL контролировать попытки подключения. Уже вне приложения FoxPro

Ну, например, из экзотики, можешь вот здесь посмотреть самое последнее сообщение

http://www.delphimaster.net/view/3-1095675680

Там смысл в том, что постоянно висит трассировка подключений и триггер на добавление записей таблицу, куда эта трасса сохраняется. Ну, и в триггере уже прописывается отключение пользователя
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Возможно ли заблокировать пользователей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]