sp_addlogin (Transact-SQL)
Aplica-se: 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 desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Em vez disso, use CREATE LOGIN .
Importante
Quando possível, use a autenticação do Windows.
Convenções de sintaxe de Transact-SQL
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 logon. @loginame é sysname, sem padrão.
@passwd [ = ] N'passwd'
A senha de logon. @passwd é sysname, com um padrão de NULL
.
Importante
Não use uma senha em branco. Use uma senha forte.
@defdb [ = ] N'defdb'
O banco de dados padrão do logon (o banco de dados ao qual o logon é conectado pela primeira vez após o logon). @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, o @deflanguage padrão do novo logon será definido como o idioma padrão atual do servidor.
@sid [ = ] sid
O SID (número de identificação de segurança). @sid é varbinary(16), com um padrão de NULL
. Se @sid for NULL
, o sistema gerará um SID para o novo login. Apesar do uso de um tipo de dados varbinary , os 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 [ = ] 'criptografado'
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 "criptografia" é usada nesta discussão por causa de compatibilidade com versões anteriores. Se uma senha de texto não criptografado for passada, ela será criptografada. O hash é armazenado. @encryptopt é varchar(20) e pode ser um dos seguintes valores.
Valor | Descrição |
---|---|
NULL (padrão) |
A senha é passada sem-criptografia. |
skip_encryption |
A senha já tem hash. O Mecanismo de Banco de Dados deve armazenar o valor sem refazê-lo. |
skip_encryption_old |
A senha fornecida foi criptografada por uma versão anterior do SQL Server. O Mecanismo de Banco de Dados deve armazenar o valor sem refazê-lo. Essa opção só é fornecida com a finalidade de atualização. |
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Comentários
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 be NULL
ou uma string 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é receber acesso a esse banco de dados pelo proprietário do banco de dados (usando sp_adduser, sp_addrolemember) ou sp_addrole.
O número SID é um GUID que identifica exclusivamente o logon 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 o hash de senha será útil se a senha já estiver com hash quando o logon for adicionado ao SQL Server. Se a senha tiver sido criptografada por uma versão anterior do 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
o .
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
R. Criar um logon do SQL Server
O exemplo a seguir cria um logon do SQL Server para o usuário Victoria
, com uma senha de , sem especificar um banco de B1r12-36
dados padrão.
EXEC sp_addlogin 'Victoria', 'B1r12-36';
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 Albert
, com uma senha e B5432-3M6
um banco de dados padrão .corporate
EXEC sp_addlogin 'Albert', 'B5432-3M6', '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
, com uma senha de , um banco de 709hLKH7chjfwv
dados padrão de AdventureWorks2022
, e um idioma padrão de Bulgarian
.
EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', '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
, com uma senha de , um banco de B548bmM%f6
dados padrão de AdventureWorks2022
, um idioma padrão de us_english
, e um SID de 0x0123456789ABCDEF0123456789ABCDEF
.
EXEC sp_addlogin 'Michael', 'B548bmM%f6', 'AdventureWorks2022', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF