Управление пользователями и системой безопасности
Делегирование учетной записи безопасности
SQL Server 2000 использует средства безопасности Windows 2000 с помощью модели безопасности Kerberos. (Информацию о модели безопасности Kerberos см. в "Платформа Microsoft Windows 2000" ) SQL Server 2000 использует протокол Kerberos для поддержки взаимной аутентификации между клиентом и сервером. Это позволяет передавать "верительные данные" клиента между компьютерами, чтобы этот клиент мог подсоединяться к нескольким серверам; при доступе к новому серверу этот сервер может продолжать работу с помощью верительных данных клиента. Это совместное использование верительных данных называется делегированием учетной записи безопасности.
Рассмотрим пример делегирования учетной записи безопасности. Предположим, что клиент подсоединяется к серверу ServerA как NTDOMAIN\AlexR, а ServerA подсоединяется к серверу ServerB. Тем самым ServerB "знает", что подсоединение осуществляется с помощью учетной записи системы безопасности NTDOMAIN\AlexR. Это позволяет клиенту обойтись без регистрации на сервере ServerB.
Если вы хотите использовать делегирование учетной записи безопасности, то все серверы, к которым вы подсоединяетесь, должны работать под управлением Windows 2000 с активизированной поддержкой Kerberos, а вы должны использовать службы Active Directory. Для делегирования работы в службах Active Directory должны быть установлены следующие параметры.
- Account is sensitive and cannot be delegated (Учетная запись является критически важной и не может быть делегирована). Этот параметр нельзя устанавливать, если пользователь запрашивает делегирование.
- Account is trusted for delegation (Учетная запись является доверяемой для делегирования). Этот параметр должен быть установлен для служебной учетной записи SQL Server 2000.
- Computer is trusted for delegation (Компьютер является доверяемым для делегирования).Этот параметр должен быть установлен для сервера, на котором выполняется один из экземпляров SQL Server 2000.
Конфигурирование SQL Server
Прежде чем использовать делегирование учетных записей безопасности, вы должны сконфигурировать SQL Server, чтобы он допускал делегирование. Делегирование вызывает взаимную аутентификацию. Чтобы можно было использовать делегирование учетных записей безопасности, SQL Server 2000 должен иметь SPN-имя (Service Principal Name), назначенное администратором учетных записей домена Windows 2000. SPN-имя должно быть присвоено служебной учетной записи сервера SQL Server на данном компьютере. SPN-имя необходимо для проверки того, что SQL Server верифицирован на определенном сервере и по определенному адресу порта (socket) администратором учетных записей домена Windows 2000. Администратор вашего домена может задать SPN-имя для SQL Server с помощью утилиты Setspn, входящей в комплект Windows 2000 Resource Kit. Чтобы создать SPN-имя для SQL Server, запустите следующий оператор:
setspn -A MSSQLSvc/Host:port serviceaccount
Вот пример использования этого оператора:
setspn -A MSSQLSvc/MyServer.MyDomain.MyCompany.com sqlaccount
Чтобы использовать делегирование учетных записей безопасности, вы должны также использовать TCP/IP. Вы не можете использовать именованные каналы (named pipes), поскольку SPN-имя указывает определенный порт (socket) TCP/IP. Если вы используете несколько портов, то должны иметь SPN для каждого порта.
Вы можете активизировать делегирование с помощью учетной записи LocalSystem. SQL Server выполнит саморегистрацию при запуске службы и автоматически зарегистрирует SPN-имя. Этот вариант проще, чем активизация с помощью пользовательской учетной записи в домене. Однако при закрытии SQL Server SPN-имена будут лишены регистрации для учетной записи LocalSystem. Чтобы активизировать делегирование под учетной записью LocalSystem, выполните следующий оператор в утилите Setspn:
setspn -A MSSQLSvc/Host:port serviceaccount
Заключение
В этой лекции вы узнали об управлении пользователями и системой безопасности SQL Server. Вы узнали, как используются учетные записи подключения (login-записи) и учетные записи пользователей базы данных, чтобы осуществлять доступ к базе данных, как создавать login-записи и пользователей баз данных, а также управлять ими. Вы также узнали, как упростить управление пользователями с помощью ролей базы данных, полномочия которых можно присваивать группе пользователей и модифицировать их из одной точки. Вы также узнали о специальной группе ролей, которые называются фиксированными ролями на сервере и используются для предоставления административных полномочий пользователям и DBA. И, наконец, мы рассмотрели улучшенное средство безопасности, включенное в SQL Server 2000, которое позволяет передавать защищенным образом учетные записи безопасности между серверами в среде Windows 2000. В "Использование SQL Query Аnalyzer и SQL Profiler" вы узнаете о хранимых процедурах SQL Server и оптимизации ваших запросов.