|
Возможно ли заблокировать пользователей
|
|||
---|---|---|---|
#18+
Здравствуйте! Возможно ли заблокировать пользователей в случае неверного введения логина или пароля более чем 3 раза в MS SQL 2008R2 средствами Visual Foxpro 8? Т.е. имеется база данных в MS SQL 2008R2 и приложение на Visual Foxpro 8. Когда пользователь вводит неверно свой логин и пароль более чем 3 раза, как мне заблокировать пользователя? В MS SQL 2008R2 вручную можно установить через свойство конкретного пользователя и установить галку в Status. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 14:58 |
|
Возможно ли заблокировать пользователей
|
|||
---|---|---|---|
#18+
Галка ставится/снимается вызовом sqlexec(h, "...") Что написать вместо "..." чтобы установить нужную галку - это спроси в форуме по MSSQL Но чтобы выполнить это "..." - тебе необходимо подключиться к MSSQL под пользователем с правами на смену этой галки, т.е. под админом. Т.е. внутри твоей проги должны быть зашиты админский логин/пароль MSSQL, что большая дыра в плане безопасности. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 15:13 |
|
Возможно ли заблокировать пользователей
|
|||
---|---|---|---|
#18+
Проблема в том, что чтобы что-то изменить в базе, надо сначала к ней подключиться. А именно подключиться и не удается. Чтобы гарантировать подключение нужно где-то, как-то, в явном виде записать логин/пароль на это самое подключение, что само по себе делает почти бессмысленным сам факт ввода логина/пароля Собственно, вариантов я вижу два Вариант 1 1. Создай отдельную служебную таблицу со списком логинов (без паролей!) и признаком активности пользователя 2. Создай специального пользователя на MS SQL у которого будет доступ на чтение/изменение только одной этой таблицы Логика входя в приложение 1. При вводе логина/пароля сначала подключаешься к базе под этим служебным пользователем и смотришь, активен ли данный логин. Если нет, то сразу сообщение об ошибке 2. Если трижды не смогли войти с указанным логином/паролем снова подключаешься под этим служебным пользователем и ставишь/снимаешь галку активности пользователя Это тоже некоторое нарушение безопасности, ведь логин/пароль служебного пользователя придется зашить в код приложения. Но это все-таки не администратор и контролирует он только одну таблицу. Хотя, можно для этого пользователя настроить DSN, но это дополнительные организационные сложности Вариант 2 Хранить список исключенных пользователей (логинов) вне базы данных. Т.е. в некоем файле на общем ресурсе. Это может быть как обычный текстовый файл TXT, так и какой-нибудь структурированный файл (DBF, INI, XML) Но здесь возникают сложности с общим доступом на изменение к таким файлам. Да и с секретностью те же проблемы... ------------------- Альтернатива - это каким-то образом средствами самого SQL контролировать попытки подключения. Уже вне приложения FoxPro Ну, например, из экзотики, можешь вот здесь посмотреть самое последнее сообщение http://www.delphimaster.net/view/3-1095675680 Там смысл в том, что постоянно висит трассировка подключений и триггер на добавление записей таблицу, куда эта трасса сохраняется. Ну, и в триггере уже прописывается отключение пользователя ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2018, 23:54 |
|
|
start [/forum/topic.php?fid=41&fpage=10&tid=1581765]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 117ms |
0 / 0 |