Управление пользователями и системой безопасности
Использование T-SQL для создания login-записей
Для создания login-записи с помощью T-SQL используется хранимая процедура sp_addlogin или хранимая процедура sp_grantlogin. Хранимая процедура sp_addlogin позволяет только добавлять аутентифицированного в SQL Server пользователя к базе данных SQL Server. Хранимая процедура sp_grantlogin позволяет добавлять пользователя, аутентифицированного в системе Windows NT/2000.
Хранимая процедура sp_addlogin имеет следующий синтаксис:
sp_addlogin [ @loginame = ] 'имя_login-записи' [ , [ @passwd = ] 'пароль' ] [ , [ @defdb = ] 'база данных' ] [ , [ @deflanguage = ] 'язык' ] [ , [ @sid = ] 'sid' ] [ , [ @encryptopt = ] 'параметр_шифрования' ]
Используются следующие необязательные параметры.
- пароль. Указывает пароль login-записи для SQL Server. Значение по умолчанию – NULL.
- база данных. Указывает базу данных по умолчанию для login-записи. Значение по умолчанию – master.
- язык. Указывает язык по умолчанию для login-записи. Значение по умолчанию – текущий язык для SQL Server.
- sid. Указывает идентификатор безопасности (SID), который является уникальным идентификационным номером. Если вы не указываете какое-либо значение, то он генерируется для вас системой. Параметр sid обычно не генерируется пользователями, но администраторы используют sid в ряде ситуаций. Когда DBA выполняет задачи поиска и устранения проблем, sid может потребоваться, чтобы определить проверяемую login-запись. Параметр sid является внутренним идентификатором для login-записи.
- параметр_шифрования.Указывает, будет ли шифроваться пароль в системных таблицах. Значение по умолчанию – NULL, означающее, что пароль будет шифроваться. Значение skip_encryption (пропустить шифрование) означает, что пароль не будет шифроваться. Если указать значение skip_encryption_old, то пароль, зашифрованный в более ранней версии SQL Server, не будет шифроваться еще раз. Вам следует изменять значение по умолчанию, только если вы хотите избежать шифрования пароля в системных таблицах.
Ниже приводится простой пример добавления login-записи:
EXEC sp_addlogin 'PatB'
Не забудьте использовать ключевое слово EXEC перед именем хранимой процедуры.
Ниже приводится более сложный пример добавления login-записи:
sp_addlogin 'SharonR', 'mypassword', 'Northwind', 'us_english'
Эта команда создает пользователя с именем SharonR и паролем "mypassword." По умолчанию будет использоваться база данных Northwind, и язык по умолчанию – U.S. English. В обычном случае вы должны предоставить создание идентификатора безопасности (SID) SQL Server вместо самостоятельного создания этого идентификатора.
Хранимая процедура sp_grantlogin имеет следующий синтаксис:
sp_grantlogin 'имя_login-записи'
Ниже показан пример использования хранимой процедуры sp_grantlogin:
EXEC sp_grantlogin 'MOUNTAIN_DEW\DickB'
"DickB" – имя учетной записи Windows NT или Windows 2000, "MOUNTAIN_DEW" – имя системы.
Добавив эти login-записи, вы можете просматривать их в Enterprise Manager. Для этого щелкните на папке Logins в левой панели.
Использование мастера Create Login Wizard
Чтобы создать login-запись для SQL Server с помощью мастера Create Login Wizard, выполните следующие шаги.
- В окне Enterprise Manager раскройте группу серверов и щелкните на имени сервера. В меню Tools выберите пункт Wizards (Мастера). В появившемся диалоговом окне Select Wizard (Выбор мастера) раскройте папку Database, щелкните на Create Login Wizard (рис. 34.5) и затем щелкните на кнопке OK. Появится начальное окно мастера Create Login Wizard (рис. 34.6).
- Щелкните на кнопке Next (Далее), чтобы появилось окно Select Authentication Mode for This Login (Выбор режима аутентификации для данной login-записи) (рис. 34.7). В этом окне вы указываете, какой режим аутентификации будет использоваться, – аутентификация Windows (первая кнопка выбора) или аутентификация в SQL Server (Смешанный режим).
- Щелкните на кнопке Next, чтобы появилось окно Authentication with Windows NT (Аутентификация с помощью Windows) или Authentication With SQL Server (Аутентификация с помощью SQL Server), – в зависимости от режима аутентификации, выбранного вами на шаге 2. На рис. 34.8 показан второй вариант. В этом окне вы задаете Login ID (идентификатор login-записи) и пароль. Если у вас выбран вариант Windows NT Authentication, то вам нужно ввести имя в домене и имя пользовательской учетной записи для аутентификации.
- Щелкните на кнопке Next, чтобы появилось окно Grant Access to Security Roles (Предоставление доступа ролям безопасности) (рис. 34.9). В этом окне вы можете выбрать роли базы данных, которые будут присвоены данной login-записи.
- Щелкните на кнопке Next, чтобы появилось окно Grant Access to Databases (Предоставление доступа к базам данных) (рис. 34.10). В этом окне вы можете выбрать базы данных, к которым будет иметь доступ эта login-запись.
- Щелкните на кнопке Next, чтобы появилось окно Completing the Create Login Wizard (Завершение работы мастера) (рис. 34.11), где вы можете увидеть в текстовом поле сводку информации. Для внесения каких-либо изменений щелкните на кнопке Back (Назад) или щелкните на кнопке Finish (Готово), чтобы создать login-запись.