sp_addlogin (Transact-SQL)

Cria um novo logon do SQL Server que permite a um usuário se conectar a uma instância do SQL Server usando a autenticação do SQL Server.

Observação importanteImportante

Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Use CREATE LOGIN.

Observação sobre segurançaObservação sobre segurança

Quando possível, use a Autenticação do Windows.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • [ @loginame = ] 'login'
    É o nome do logon. login é sysname, sem nenhum padrão.

  • [ @passwd = ] 'password'
    É a senha de logon. password é sysname, com um padrão NULL.

    Observação sobre segurançaObservação sobre segurança

    Não use uma senha em branco. Use uma senha forte.

  • [ @defdb = ] 'database'
    É o banco de dados padrão do logon (o banco de dados ao qual o logon foi conectado pela primeira vez após a conexão). database is sysname, com um padrão de master.

  • [ @deflanguage = ] 'language'
    É o idioma padrão do logon. language é sysname com um padrão NULL. Se language não for especificado, o padrão language do novo logon será definido como o idioma padrão atual do servidor.

  • [ @sid = ] 'sid'
    É o número de identificação de segurança (SID). sid é varbinary(16), com um padrão NULL. Se sid for NULL, o sistema gerará um SID para o novo logon. Apesar do uso de um tipo de dados varbinary, os valores diferentes de NULL devem ter exatamente 16 bytes e não devem ser existentes. A especificação de sid é útil, por exemplo, quando você está criando scripts ou movendo logons do SQL Server de um servidor para outro e deseja que os logons tenham o mesmo SID em servidores diferentes.

  • [ @encryptopt = ] 'encryption_option'
    Especifica se a senha é passada como texto não criptografado ou como o hash da senha de texto não criptografado. Observe que não há nenhuma criptografia. A palavra "criptografia" é usada nesta discussão por causa de compatibilidade com versões anteriores. Se uma senha de texto não criptografado for passada, ocorrerá hash. O hash é armazenado. encryption_option é varchar(20) e pode ser um dos valores a seguir.

    Valor

    Descrição

    NULL

    A senha é passada sem criptografia. Esse é o padrão.

    skip_encryption

    A senha já tem hash. O Mecanismo de Banco de Dados deve armazenar o valor sem hash.

    skip_encryption_old

    A senha foi fornecida com hash por uma versão anterior do SQL Server. O Mecanismo de Banco de Dados deve armazenar o valor sem hash. Essa opção só é fornecida com a finalidade de atualização.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

Logons do SQL Server podem conter 1 a 128 caracteres, inclusive cartas, símbolos e números. Os logons não podem conter uma barra invertida (\); ser um nome de logon reservado, por exemplo, sa ou public nem existirem; nem ser NULL ou uma cadeia de caracteres ('').

Se o nome de um banco de dados padrão for fornecido, não será possível conectar-se ao banco de dados especificado sem executar a instrução USE. Entretanto, você não pode usar o banco de dados padrão até ganhar acesso a esse banco de dados pelo proprietário do banco de dados (usando sp_adduser ou sp_addrolemember) ou sp_addrole.

O número de SID é um GUID que identificará o logon exclusivamente no servidor.

A alteração do idioma padrão de servidor não altera o idioma padrão de logons existentes. Para alterar o idioma padrão do servidor, use sp_configure.

O uso do skip_encryption para suprimir o hash da senha é útil se a senha já tiver hash quando o logon for adicionado ao SQL Server. Se a senha já tinha hash em uma versão anterior SQL Server, use skip_encryption_old.

sp_addlogin não pode ser executado em uma transação definida pelo usuário.

A tabela a seguir mostra vários procedimentos armazenados que são usados com sp_addlogin.

Procedimento armazenado

Descrição

sp_grantlogin

Adiciona um usuário ou grupo do Windows.

sp_password

Altera a senha de um usuário.

sp_defaultdb

Altera o banco de dados padrão de um usuário.

sp_defaultlanguage

Altera o idioma padrão de um usuário.

Permissões

Requer a permissão ALTER ANY LOGIN.

Exemplos

A. Criação de um logon do SQL Server

O exemplo a seguir cria um logon do SQL Server para o usuário Victoria, com uma senha de B1r12-36, sem especificar um banco de dados padrão.

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

B. Criação de um logon do SQL Server que tem um banco de dados padrão

O exemplo a seguir cria um logon do SQL Server para o usuário Albert, com uma senha de B5432-3M6 e um banco de dados padrão de corporate.

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

C. Criação de um logon do SQL Server que tem um idioma padrão diferente

O exemplo a seguir cria um logon do SQL Server para o usuário TzTodorov, com uma senha de 709hLKH7chjfwv, um banco de dados padrão de AdventureWorks e um idioma padrão de Bulgarian.

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

D. Criação de um logon do SQL Server logon que tem um SID específico

O exemplo a seguir cria um logon de SQL Server para o usuário Michael, com uma senha de B548bmM%f6, um banco de dados padrão de AdventureWorks, um idioma padrão de us_english e um SID de 0x0123456789ABCDEF0123456789ABCDEF.

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