Кто-либо знает, возможно ли настроить 2008 MSSQL для использования аутентификации Windows, но пользователи должны были бы все еще ввести свой пароль Windows для вхождения в систему (это должно будет быть выполнено при помощи Delphi 7+ADO)?
[Править]: Просто для уточнения SQL-сервер и клиенты - все в рамках того же Windows Domain.
[Отредактируйте 2]: Я не хочу писать, что мои собственные новые LoginDialog, а скорее иметь SQL Server делают это для меня или скажем, управления DBConn.
С наилучшими пожеланиями, Reinhard
Если вы действительно хотите это сделать, вы можете предложить пользователю (повторно) ввести учетные данные, а затем проверить и обработать их соответствующим образом в зависимости от успеха / неудачи. Для этого вам нужна функция LogonUser
. На этом этапе вы даже можете разрешить пользователю входить в базу данных, используя учетные данные, отличные от тех, которые используются для входа в компьютер, с помощью функции ImpersonateLoggedOnUser
. См. этот ответ .
Было бы небезопасно и, вероятно, снизилось бы доверие к вашему приложению, если бы вы заставили пользователей снова вводить имя пользователя и пароль своего домена в вашем приложении. Как упоминал Джероен выше, вся идея использования Windows auth заключается в том, что используется существующий пользовательский сеанс!
@MarkRobinson: Я не понимаю, почему такой приложение будет небезопасным? Пользователи даже не знаю разницы между sql auth и windows auth и до теперь в нашей старой системе они всегда пришлось предоставить имя пользователя / пароль, так как использовался только sql auth
Пользователи не знают разницы, поэтому покажите им путь - если они вошли в свою учетную запись домена и каким-то механизмом вашего программного обеспечения им разрешено использовать ваше приложение, то непременно впустите их одним щелчком мыши - покажите экран-заставку, который информирует их о том, что вы «вводите их в систему с помощью их учетных данных домена ...» или что-то подобное, таким образом вы даете им понять, что вы экономите их время.
Это было бы небезопасно из-за того простого факта, что вы добавляете шаг, который не требуется, поскольку вход в систему с авторизацией Windows устраняет эту проблему.
Edit1:
Перечитывая исходный вопрос, я вижу, что оператор просто хочет открыть окно входа в систему по умолчанию для обеспечения безопасности.
Я бы порекомендовал либо:
На странице, на которую ссылается Скотт В., есть хорошая ссылка на Как проверить учетные данные пользователя в операционных системах Microsoft . В частности, они подробно описывают аспект безопасности:
Примечание Сбор учетных данных пользователя из приложения пользовательского режима может раздражать пользователей и может создать возможную дыру в безопасности в вычислительной среде предприятия. . Требование единого входа в систему (требование, согласно которому от пользователя требуется вводить свои учетные данные только один раз на экране CTRL + ALT + DEL) было добавлено в требования к логотипу Microsoft BackOffice именно по этим причинам. Важно убедиться, что вам действительно нужно собрать учетные данные и что какой-либо другой метод проверки клиент / сервер не подходит больше. Обратитесь к документации по безопасности в Platform SDK для получения дополнительной информации о олицетворении и программировании защищенных серверов.