Как использовать проверку подлинности Windows с MSSQL 2008 + Delphi 7 + ADO, но пользователи все равно будут вводить свой пароль? - PullRequest
5 голосов
/ 21 июня 2010

Кто-нибудь знает, возможно ли настроить MSSQL 2008 для использования аутентификации Windows, но пользователям все равно придется вводить свой пароль Windows для входа в систему (это должно быть достигнуто с помощью Delphi 7 + ADO)?

[Редактировать]: просто уточнить, что sql-сервер и клиенты находятся в одном домене Windows.

[Редактировать 2]: я не хочу писать свой новый LoginDialog, а вместо этого SQL Server сделает это для меня или, скажем, элемент управления DBConn.

С уважением, Reinhard

Ответы [ 3 ]

2 голосов
/ 21 июня 2010

Если вы действительно хотите это сделать, вы можете предложить пользователю (повторно) ввести учетные данные, а затем проверить и обработать соответствующим образом в зависимости от успеха / неудачи.Для этого вам нужна функция LogonUser.На этом этапе вы могли бы даже позволить пользователю войти в базу данных, используя учетные данные, отличные от тех, которые использовались для входа в компьютер с помощью функции ImpersonateLoggedOnUser.Пожалуйста, смотрите этот ответ .

2 голосов
/ 21 июня 2010

Было бы довольно небезопасно и, вероятно, снизило бы доверие к вашему приложению, если бы вы заставили пользователей снова вводить имя пользователя и пароль своего домена в своем приложении.Как упоминал Jeroen выше, вся идея использования Windows Auth заключается в том, что используется существующий сеанс пользователя!

@ MarkRobinson: Я не понимаю, почему такое приложение будет небезопасным?Пользователи даже не знают разницы между sql auth и windows auth, и до сих пор в нашей старой системе им всегда приходилось указывать имя пользователя / пароль, поскольку использовался только sql auth

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

Это было бы небезопасно по той простой причине, что выдобавляем шаг, который не требуется, так как вход в Windows Auth устраняет эту проблему.

Edit1:

Перечитывая исходный вопрос, я вижу, что операционник просто хочетДля обеспечения безопасности откройте окно входа в Windows по умолчанию.

Я бы порекомендовал:

  1. Убедитесь, что естьЗаставка с соответствующим временем ожидания, которое заставит relogin
  2. Использовать LockWorkStation для форсирования события relogin (возможно, сначала показать сообщение, в духе "для безопасности, ваша рабочая станция будет заблокирована, чтобы убедиться, что вы тот, кто высказать, что вы "
1 голос
/ 22 июня 2010

На странице, на которую ссылается Скотт W, есть хорошая ссылка на Как проверить учетные данные пользователя в операционных системах Microsoft .В частности, они подробно расскажут об аспекте безопасности:

Примечание Сбор учетных данных пользователя из приложения пользовательского режима может раздражать пользователей и может обеспечитьвозможная дыра в безопасности в вычислительной среде предприятия.По этой причине в требование к логотипу Microsoft BackOffice было добавлено требование единого входа (требование о том, что от пользователя требуется только один раз вводить свои учетные данные на экране CTRL + ALT + DEL).Важно убедиться, что вам действительно нужно собрать учетные данные и что какой-то другой метод проверки клиент / сервер не подходит.Обратитесь к документации по безопасности в Platform SDK для получения дополнительной информации о олицетворении и программировании защищенных серверов.

...