Существует два варианта безопасного режима при установке SQL Server. Разница между ними заключается в том, какое программное обеспечение выполняет процесс аутентификации. Аутентификация — это процесс подтверждения личности пользователя, подключающегося к SQL Server. После выполнения аутентификации SQL Server может проверить, имеет ли пользователь разрешение на подключение к запрошенному ресурсу, например базе данных. Если у пользователя есть разрешение на подключение к базе данных, SQL Server разрешит успешное выполнение запроса на подключение, в противном случае соединение завершится неудачей. Этот процесс проверки разрешений пользователя также называется авторизацией.
· Аутентификация Windows (также известная как доверенная аутентификация или интегрированная безопасность) использует удостоверение пользователя Windows, отправляющего запрос на соединение, для выполнения авторизации в базе данных. В этом случае в строке подключения не обязательно указывать явное имя пользователя и пароль. ASP.NET запускается от имени локального пользователя с именем «ASPNET» (или «Сетевая служба» в IIS 6.0), поэтому при использовании проверки подлинности Windows SQL проверит, есть ли у этого пользователя разрешение на использование базы данных. На этом этапе все приложения ASP.NET выполняются под одним и тем же пользователем, поэтому безопасный режим обрабатывает их одинаково. Хотя можно запускать каждое приложение в отдельном процессе ASP.NET (каждое приложение запускает отдельный пользователь) или олицетворять личность пользователя Windows браузерного клиента, отправляющего запрос на соединение, это выходит за рамки этой книги. . Однако олицетворение клиента является наиболее распространенным применением проверки подлинности Windows в веб-приложениях.
· Проверка подлинности SQL проверяет явно предоставленные имена пользователей и пароли среди пользователей, настроенных в SQL Server (без участия операционной системы). В этом случае каждое приложение, работающее в процессе ASP.NET, может подключаться к базе данных с помощью отдельного сертификата, таким образом разумно изолируя приложения (приложение A не сможет подключиться к базе данных, если у него нет имени пользователя и пароля B). . Невозможно подключиться к базе данных B). Это наиболее распространенный режим аутентификации, используемый для развернутых веб-приложений, особенно в случае общего хостинга. Небольшим недостатком является то, что приложение требует сохранения пароля учетной записи пользователя, используемой для подключения, и если этот пароль будет получен злонамеренным пользователем, безопасность базы данных будет поставлена под угрозу. Однако, как вы увидите далее в этой книге, ASP.NET предоставляет безопасный способ хранения пароля аутентификации SQL в зашифрованном формате в файле Web.config, тем самым снижая риск получения пароля.
· Смешанный режим — это конфигурация SQL Server, которая допускает как проверку подлинности Windows, так и проверку подлинности SQL.
При установке SQL Server или SSE необходимо выбрать режим аутентификации. В SQL Server имеется мастер, который поможет вам сделать выбор на этапах обеспечения безопасности, тогда как в SSE по умолчанию выбрана проверка подлинности Windows. Если вы хотите установить проверку подлинности SQL, вам необходимо настроить ее явно. В этой статье используется проверка подлинности Windows.
Если вы установили SQL Server или SSE, вы можете просмотреть указанный режим аутентификации, открыв RegEdit (конечно, сначала вам необходимо создать его резервную копию), найдите HKey_Local_Machine/Software/Microsoft/Microsoft SQL Server и найдите LoginMode. Подключ регистрации со значением 1 представляет проверку подлинности Windows, а значение 2 — смешанный режим проверки подлинности.
В Таблице 3-1 суммированы различия между этими режимами.
Таблица 3-1
Аутентификация Windows. | Аутентификация SQL. | ||
Сменное имя. | Доверенная аутентификация. Интегрированная безопасность | Нет, но проверка подлинности в смешанном режиме позволяет использовать проверку подлинности Windows или SQL | |
в интрасети | . | Расположениесписка | |
пользователей Интернета и процессов проверки подлинности | Windows | SQL Server | |
SSE. При | установке по умолчанию | необходимо указать | |
строку подключения | установкиTrusted_connection=true или Integrated Security. = истинный | пользователь = имя пользователя; пароль=пароль | |
Пользователи веб-приложений ASP.NET. | Пользователипроцессов ASPNET (IIS 5.x) или сетевых служб (IIS 6) | SQL | |
имеют преимущество | более высокой безопасности;они | могут контролировать события SQL и события Windows. | быть развернут на хост-машине без создания новой учетной записи, независимой от операционной системы; Размещенный сайт интрасети требует лишь умеренных навыков Предоставляет приложениям более гибкий способ подключения к каждой базе данных с разными сертификатами. |
Недостатки. | Предоставление сертификата Windows веб-приложению может привести к слишком большому объему разрешений в ОС. | Пароли хранятся в веб-приложении (что не является случай проверки подлинности Windows). Убедитесь, что пароль сохранен в файле Web.config и зашифрован. Позволяет выполнять низкоуровневые операции для веб-приложений, использующих сертификаты sa. Всегда создавайте новые сертификаты для веб-приложений ASP.NET и предоставляйте только необходимые разрешения. |