Partilhar via


sp_addlogin (Transact-SQL)

Aplica-se a:SQL Server

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

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. Em vez disso, use CREATE LOGIN .

Importante

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

Transact-SQL convenções de sintaxe

Sintaxe

sp_addlogin
    [ @loginame = ] N'loginame'
    [ , [ @passwd = ] N'passwd' ]
    [ , [ @defdb = ] N'defdb' ]
    [ , [ @deflanguage = ] N'deflanguage' ]
    [ , [ @sid = ] sid ]
    [ , [ @encryptopt = ] 'encryptopt' ]
[ ; ]

Argumentos

@loginame [ = ] N'loginame'

O nome do login. @loginame é sysname, sem padrão.

@passwd [ = ] N'passwd'

A senha de login. @passwd é sysname, com um padrão de NULL.

Importante

Não utilize uma palavra-passe em branco. Use uma senha forte.

@defdb [ = ] N'defdb'

O banco de dados padrão do login (o banco de dados ao qual o login é conectado pela primeira vez após o login). @defdb é sysname, com um padrão de master.

@deflanguage [ = ] N'deflanguage'

O idioma padrão do login. @deflanguage é sysname, com um padrão de NULL. Se @deflanguage não for especificado, a @deflanguage padrão do novo login será definida 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 de NULL. Se @sid for NULL, o sistema gera um SID para o novo login. Apesar do uso de um tipo de dados varbinary , valores diferentes devem NULL ter exatamente 16 bytes de comprimento e ainda não podem existir. Especificar @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 [ = ] 'encriptado'

Especifica se a senha é passada como texto não criptografado ou como o hash da senha de texto não criptografado. Nenhuma criptografia ocorre. A palavra "encriptar" é usada nesta discussão por uma questão de retrocompatibilidade. Se uma senha de texto não criptografado for passada, ela será colocada em hash. O hash é armazenado. @encryptopt é varchar(20) e pode ser um dos seguintes valores.

Valor Descrição
NULL (padrão) A palavra-passe é passada em branco.
skip_encryption A senha já está em hash. O Mecanismo de Banco de Dados deve armazenar o valor sem fazer hash novamente.
skip_encryption_old A senha fornecida foi colocada em hash por uma versão anterior do SQL Server. O Mecanismo de Banco de Dados deve armazenar o valor sem fazer hash novamente. Esta opção é fornecida apenas para fins de atualização.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Observações

Os logons do SQL Server podem conter de 1 a 128 caracteres, incluindo letras, símbolos e números. Os logins não podem conter uma barra invertida (\); ser um nome de login reservado, por exemplo sa ou public, ou já existir, ou ser NULL ou uma cadeia de caracteres vazia.

Se o nome de um banco de dados padrão for fornecido, você poderá se conectar ao banco de dados especificado sem executar a USE instrução. No entanto, você não pode usar o banco de dados padrão até que o proprietário do banco de dados conceda acesso a esse banco de dados (usando sp_adduser, sp_addrolemember) ou sp_addrole.

O número SID é um GUID que identifica exclusivamente o login no servidor.

Alterar o idioma padrão do servidor não altera o idioma padrão dos logins existentes. Para alterar o idioma padrão do servidor, use sp_configure.

Usar skip_encryption para suprimir hash de senha é útil se a senha já estiver em hash quando o logon for adicionado ao SQL Server. Se a senha foi colocada em hash por uma versão anterior do SQL Server, use skip_encryption_old.

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

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

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 permissão para ALTER ANY LOGIN.

Exemplos

Um. Criar um logon do SQL Server

O exemplo a seguir cria um logon do SQL Server para o usuário Victoria, sem especificar um banco de dados padrão. Substitua <password> por uma senha forte.

EXECUTE sp_addlogin 'Victoria', '<password>';
GO

B. Criar um logon do SQL Server que tenha um banco de dados padrão

O exemplo a seguir cria um logon do SQL Server para o usuário Alberte um banco de dados padrão de corporate. Substitua <password> por uma senha forte.

EXECUTE sp_addlogin 'Albert', '<password>', 'corporate';
GO

C. Criar um logon do SQL Server que tenha um idioma padrão diferente

O exemplo a seguir cria um logon do SQL Server para o usuário TzTodorov, um banco de dados padrão de AdventureWorks2025, e um idioma padrão de Bulgarian. Substitua <password> por uma senha forte.

EXECUTE sp_addlogin 'TzTodorov', '<password>', 'AdventureWorks2022', N'български';

D. Criar um logon do SQL Server que tenha um SID específico

O exemplo a seguir cria um logon do SQL Server para o usuário Michael, um banco de dados padrão de AdventureWorks2025, um idioma padrão de us_english, e um SID de 0x0123456789ABCDEF0123456789ABCDEF. Substitua <password> por uma senha forte.

EXECUTE sp_addlogin 'Michael', '<password>', 'AdventureWorks2022', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF;