sp_addlogin (Transact-SQL)

Создает новое имя входа на SQL Server, позволяющее пользователю подключаться к экземпляру SQL Server с применением проверки подлинности SQL Server.

Важное примечаниеВажно!

В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Используйте вместо нее инструкцию CREATE LOGIN.

Примечание по безопасностиПримечание по безопасности

По возможности используйте проверку подлинности Windows.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

sp_addlogin [ @loginame = ] 'login' 
    [ , [ @passwd = ] 'password' ] 
    [ , [ @defdb = ] 'database' ] 
    [ , [ @deflanguage = ] 'language' ] 
    [ , [ @sid = ] sid ] 
    [ , [ @encryptopt = ] 'encryption_option' ] 
[;]

Аргументы

  • [ @loginame= ] 'login'
    Имя входа . Аргумент login имеет тип sysname и не имеет значения по умолчанию.

  • [ @passwd= ] 'password'
    Пароль имени входа. Аргумент password имеет тип sysname и значение по умолчанию NULL.

    Примечание по безопасностиПримечание по безопасности

    Не используйте пустые пароли. Выбирайте надежные пароли.

  • [ @defdb= ] 'database'
    База данных, используемая по умолчанию именем входа (база данных, к которой подключается пользователь с этим именем после входа в систему). Аргумент database имеет тип sysname и значение по умолчанию master.

  • [ @deflanguage= ] 'language'
    Язык по умолчанию для имени входа. Аргумент language имеет тип sysname и значение по умолчанию NULL. Если аргумент language не указан, значением по умолчанию для аргумента language нового имени входа становится текущий язык по умолчанию, заданный на сервере.

  • [ @sid= ] 'sid'
    Идентификатор безопасности (SID). Аргумент sid имеет тип varbinary(16) и значение по умолчанию NULL. Если аргумент sid равен NULL, система сама формирует SID для нового имени входа. Несмотря на то, что этот аргумент имеет тип данных varbinary, значения, отличные от NULL, должны включать ровно 16 байт и не должны уже существовать. Аргумент sid полезен, например, при использовании имен входа SQL Server в скриптах или переносе их с одного сервера на другой, если нужно, чтобы они имели один и тот же SID на разных серверах.

  • [ @encryptopt= ] 'encryption_option'
    Этот аргумент определяет, передается ли пароль в виде открытого текста или в виде его хэша. Шифрование при этом не выполняется. Слово «шифрование» используется в этом контексте для обратной совместимости. Если в процедуру передан открытый пароль, он хэшируется. Хэш сохраняется. Аргумент encryption_option имеет тип varchar(20) и может принимать одно из следующих значений.

    Значение

    Описание

    NULL

    Пароль передан как открытый текст. Это значение по умолчанию.

    skip_encryption

    Хэширование пароля уже выполнено. Компонент Компонент Database Engine должен сохранить его значение без повторного хэширования.

    skip_encryption_old

    Указанный пароль был хэширован более ранней версией SQL Server. Компонент Компонент Database Engine должен сохранить его значение без повторного хэширования. Этот вариант предоставлен только для выполнения обновлений.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

Имена входа SQL Server могут содержать от 1 до 128 символов, включая буквы, символы и цифры. Имена входа не должны содержать обратную косую черту (\), совпадать с уже существующими или зарезервированными именами, например с sa или public, иметь значение NULL или быть пустой строкой ('').

Если предоставлено имя базы данных по умолчанию, к ней можно подключиться, не выполняя инструкцию USE. Однако использовать базу данных по умолчанию нельзя, пока ее владелец не предоставит доступ к ней (с помощью хранимой процедуры sp_adduser, sp_addrolemember) или sp_addrole.

Номер SID — это идентификатор GUID, однозначно определяющий имя входа на сервере.

Изменение языка по умолчанию на сервере не приводит к изменению языка по умолчанию существующих имен входа. Чтобы изменить язык по умолчанию на сервере, воспользуйтесь хранимой процедурой sp_configure.

Применение значения skip_encryption для подавления хэширования паролей полезно, если пароль уже был хэширован при добавлении имени входа в SQL Server. Если пароль был хэширован более ранней версией SQL Server, укажите значение skip_encryption_old.

Хранимая процедура sp_addlogin не может быть выполнена в пользовательской транзакции.

В следующей таблице указаны некоторые хранимые процедуры, используемые совместно с sp_addlogin.

Хранимая процедура

Описание

sp_grantlogin

Добавляет пользователя или группу Windows.

sp_password

Изменяет пароль пользователя.

sp_defaultdb

Изменяет назначенную пользователю базу данных по умолчанию.

sp_defaultlanguage

Изменяет назначенный пользователю язык по умолчанию.

Разрешения

Требуется разрешение ALTER ANY LOGIN.

Примеры

А.Создание имени входа на SQL Server

В следующем примере создается имя входа на SQL Server для пользователя Victoria с паролем B1r12-36 без указания базы данных по умолчанию.

EXEC sp_addlogin 'Victoria', 'B1r12-36';
GO

Б.Создание имени входа на SQL Server с базой данных по умолчанию

В следующем примере создается имя входа на SQL Server для пользователя Albert с паролем B5432-3M6 и базой данных corporate по умолчанию.

EXEC sp_addlogin 'Albert', 'B5432-3M6', 'corporate';
GO

В.Создание имени входа на SQL Server с другим языком по умолчанию

В следующем примере создается имя входа на SQL Server для пользователя TzTodorov с паролем 709hLKH7chjfwv, базой данных AdventureWorks2012 и языком Bulgarian по умолчанию.

EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', 'AdventureWorks2012', N'български'

Г.Создание имени входа на SQL Server с конкретным SID

В следующем примере создается имя входа на SQL Server для пользователя Michael с паролем B548bmM%f6, базой данных по умолчанию AdventureWorks2012, языком по умолчанию us_english и SID, равным 0x0123456789ABCDEF0123456789ABCDEF.

EXEC sp_addlogin 'Michael', 'B548bmM%f6', 'AdventureWorks2012', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF

См. также

Справочник

CREATE LOGIN (Transact-SQL)

sp_droplogin (Transact-SQL)

sp_helpuser (Transact-SQL)

Хранимая процедура sp_revokelogin (Transact-SQL)

xp_logininfo (Transact-SQL)