Compartilhar via


CREATE LOGIN (Transact-SQL)

 

Cria um logon do Mecanismo de Banco de Dados para SQL Server e Banco de dados SQL do Azure.

Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Azure.

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

Sintaxe

-- SQL Server Syntax
CREATE LOGIN login_name { WITH <option_list1> | FROM <sources> }

<option_list1> ::= 
    PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ]
    [ , <option_list2> [ ,... ] ]

<option_list2> ::=  
    SID = sid
    | DEFAULT_DATABASE =database    
    | DEFAULT_LANGUAGE =language
    | CHECK_EXPIRATION = { ON | OFF}
    | CHECK_POLICY = { ON | OFF}
    | CREDENTIAL =credential_name <sources> ::=
    WINDOWS [ WITH <windows_options>[ ,... ] ]
    | CERTIFICATE certname
    | ASYMMETRIC KEY asym_key_name<windows_options> ::=      
    DEFAULT_DATABASE =database
    | DEFAULT_LANGUAGE =language

-- Syntax for Windows Azure SQL Database

CREATE LOGIN login_name
 { WITH <option_list3> }

<option_list3> ::= 
    PASSWORD = { 'password' }
    [ SID = sid ]

Argumentos

  • login_name
    Especifica o nome do logon criado. Há quatro tipos de logon: logons do SQL Server, logons do Windows, logons mapeados por certificado e logons mapeados por chave assimétrica. Ao criar logons mapeados de uma conta de domínio do Windows, você deve usar o nome de logon de usuário de versões anteriores ao Windows 2000 no formato [<NomeDeDomínio>\<nome_de_logon>]. Não é possível usar um UPN no formato nome_de_logon@NomedeDomínio. Para obter um exemplo, consulte o exemplo D posteriormente neste tópico. Os logons de autenticação SQL Server são do tipo sysname e devem estar em conformidade com as regras para Identificadores e não podem conter um '\'. Os logons do Windows podem conter um '\'.

  • PASSWORD ='password'
    Aplica-se somente a logons do SQL Server. Especifica a senha do logon que está sendo criado. Use uma senha forte. Para obter mais informações, consulte Senhas fortes e Política de senha.

    As senhas diferenciam maiúsculas de minúsculas. As senhas sempre devem ter pelo menos 8 caracteres e não podem exceder 128 caracteres. Elas podem incluir caracteres de a-z, A-Z, 0-9, e a maioria dos caracteres não alfanuméricos. As senhas não podem conter aspas simples ou o login_name.

  • PASSWORD **=**hashed_password

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    Só se aplica à palavra-chave HASHED. Especifica o valor com hash da senha para o logon que está sendo criado.

  • HASHED

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    Aplica-se somente a logons do SQL Server. Especifica que a senha digitada depois do argumento PASSWORD já esteja com hash. Se esta opção não for selecionada, a cadeia de caracteres inserida como senha terá hash antes de ser armazenada no banco de dados. Essa opção deve ser usada somente para migrar bancos de dados de um servidor para outro. Não use a opção HASHED para criar novos logons. A opção HASHED não pode ser usada com os hashes criados pelo SQL Server 7 ou anterior.

  • MUST_CHANGE

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    Aplica-se somente a logons do SQL Server. Se esta opção estiver incluída, o SQL Server solicita ao usuário uma nova senha quando o novo logon for usado pela primeira vez.

  • CREDENTIAL **=**credential_name

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    O nome de uma credencial a ser mapeada para um novo logon do SQL Server. A credencial já deve existir no servidor. Atualmente, esta opção vincula apenas a credencial a um logon. Não é possível mapear uma credencial para logon sa.

  • SID = sid
    Usado para recriar um logon. Aplica-se apenas aos logons de autenticação do SQL Server, e não aos logons de autenticação do Windows. Especifica o SID do novo logon de autenticação do SQL Server. Se esta opção não for selecionada, o SQL Server atribuirá um SID automaticamente. A estrutura do SID depende da versão do SQL Server.

    • SID de logon do SQL Server: uma valor literal de 16 bytes (binary (16)) baseado em um GUID. Por exemplo, SID = 0x14585E90117152449347750164BA00A7.

    • SID de logon do Banco de Dados SQL: uma estrutura de SID válida para o Banco de dados SQL do Azure. Normalmente, trata-se de uma literal de 32 bytes (binary(32)) que consiste em 0x01060000000000640000000000000000, além de 16 bytes representando um GUID. Por exemplo, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

  • DEFAULT_DATABASE **=**database

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    Especifica o banco de dados padrão a ser atribuído ao logon. Se esta opção não for incluída, o banco de dados padrão será definido como master.

  • DEFAULT_LANGUAGE **=**language

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    Especifica o idioma padrão a ser atribuído ao logon. Se esta opção não for incluída, o idioma padrão será definido como o idioma padrão atual do servidor. Se o idioma padrão do servidor for alterado posteriormente, o idioma padrão do logon permanecerá inalterado.

  • CHECK_EXPIRATION = { ON | OFF }

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    Aplica-se somente a logons do SQL Server. Especifica se a política de expiração de senha deve ser aplicada neste logon. O valor padrão é OFF.

  • CHECK_POLICY = { ON | OFF }

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    Aplica-se somente a logons do SQL Server. Especifica se as políticas de senha do Windows do computador em que o SQL Server está em execução devem ser aplicadas neste logon. O valor padrão é ON.

    Se a diretiva de Windows exigir senhas fortes, as senhas deverão conter pelo menos três das quatro características a seguir:

    • Um caractere maiúsculo (A-Z).

    • Um caractere minúsculo (a-z).

    • Um dígito (0-9).

    • Um dos caracteres não alfanuméricos, como um espaço, _, @, *, ^, %, !, $, # ou &.

  • WINDOWS

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    Especifica que o logon seja mapeado para um logon do Windows.

  • CERTIFICATE certname

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    Especifica o nome de um certificado a ser associado a este logon. Este certificado já deve ocorrer no banco de dados master.

  • ASYMMETRIC KEY asym_key_name

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    Especifica o nome de uma chave assimétrica a ser associada a este logon. Esta chave já deve ocorrer no banco de dados master.

Comentários

As senhas diferenciam maiúsculas de minúsculas.

O hash prévio de senhas tem suporte somente durante a criação de logons do SQL Server.

Se ambos os argumentos HASHED e CHECK_POLICY = ON forem especificados, a complexidade da senha não será verificada até a próxima vez que a senha for alterada.

Se MUST_CHANGE for especificado, CHECK_EXPIRATION e CHECK_POLICY deverão ser definidos como ON. Caso contrário, a instrução falhará.

Não há suporte para uma combinação de CHECK_POLICY = OFF e CHECK_EXPIRATION = ON.

Quando CHECK_POLICY é definido como OFF, lockout_time é redefinido e CHECK_EXPIRATION é definido como OFF.

Importante

CHECK_EXPIRATION e CHECK_POLICY serão aplicados apenas no Windows Server 2003 e posteriores. Para obter mais informações, consulte Política de senha.

Os logons criados a partir de certificados ou chaves assimétricas só são usados para assinatura de código. Eles não podem ser usados para a conexão com o SQL Server. Você pode criar um logon a partir de um certificado ou chave assimétrica somente quando o certificado ou a chave já existe em master.

Para um script transferir logons, consulte Como transferir os logons e senhas entre instâncias do SQL Server 2005 e SQL Server 2008.

Criar um logon automaticamente habilita o novo logon e concede a ele a permissão CONNECT SQL de nível de servidor.

Logons de banco de dados SQL do Windows Azure

No Banco de Dados SQL, a instrução CREATE LOGIN deve ser a única instrução em um lote.

No Banco de Dados SQL, você deve estar conectado ao banco de dados mestre para criar um logon.

As regras do SQL Server permitem criar um logon de autenticação do SQL Server no formato <nomedologon>@<nomedoservidor>. Se o seu servidor do Banco de Dados SQL for myazureserver e o logon for myemail@live.com, você poderá fornecer seu logon como myemail@live.com@myazureserver. Use essa técnica somente se você planeja usar a credencial para conexão com um único servidor. Algumas versões mais antigas das bibliotecas de clientes SQL exigem o uso do formato <nomedologon>@<nomedoservidor> ao se conectar ao Banco de Dados SQL do Azure.

Para obter mais informações sobre logons do Banco de Dados SQL, consulte Gerenciando bancos de dados e logons no banco de dados SQL do Windows Azure.

Permissões

No SQL Server, exige a permissão ALTER ANY LOGIN no servidor ou associação na função de servidor fixa securityadmin.

no Banco de Dados SQL, somente o logon principal do nível de servidor (criado pelo processo de provisionamento) ou membros da função de banco de dados loginmanager no banco de dados mestre podem criar novos logons.

Se a opção CREDENTIAL for usada, também será necessária a permissão ALTER ANY CREDENTIAL no servidor.

Próximas etapas

Depois de criar um logon, o logon pode se conectar ao aplicativo Mecanismo de Banco de Dados ou Banco de Dados SQL mas só tem as permissões concedidas à função pública. Execute algumas das atividades a seguir.

Exemplos

A. Criando um logon com uma senha

O exemplo a seguir cria um logon para um usuário específico e atribui uma senha.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B. Criando um logon com uma senha

O exemplo a seguir cria um logon para um usuário específico e atribui uma senha. A opção MUST_CHANGE requer que os usuários alterem essa senha na primeira vez em que eles conectam ao servidor.

Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>' MUST_CHANGE;
GO

C. Criando um logon mapeado para uma credencial

O exemplo a seguir cria o logon para um usuário específico usando o usuário. Esse logon é mapeado para a credencial.

Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>', 
    CREDENTIAL = <credentialName>;
GO

D. Criando um logon a partir de um certificado

O exemplo a seguir cria um logon para um usuário específico de um certificado em master.

Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

USE MASTER;
CREATE CERTIFICATE <certificateName>
    WITH SUBJECT = '<login_name> certificate in master database',
    EXPIRY_DATE = '12/05/2025';
GO
CREATE LOGIN <login_name> FROM CERTIFICATE <certificateName>;
GO

E. Criando um logon a partir de uma conta de domínio do Windows

O exemplo a seguir cria um logon a partir de uma conta de domínio do Windows.

Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

CREATE LOGIN [<domainName>\<login_name>] FROM WINDOWS;
GO

F. Criando um logon por meio de um SID

O exemplo a seguir cria primeiro um logon de autenticação do SQL Server e determina o SID do logon.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Minha consulta retorna 0x241C11948AEEB749B0D22646DB1A19F2 como o SID. Sua consulta retornará um valor diferente. As instruções a seguir excluem o logon e depois o recriam. Use o SID da consulta anterior.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin 
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Consulte também

Entidades (Mecanismo de Banco de Dados)
Política de senha
ALTER LOGIN (Transact-SQL)
DROP LOGIN (Transact-SQL)
EVENTDATA (Transact-SQL)
Crie um logon