CREATE LOGIN (Transact-SQL)

Cria um novo logon do SQL Server.

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

Sintaxe

CREATE LOGIN loginName { 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

Argumentos

  • loginName
    Especifica o nome do logon criado. Há quatro tipos de logons: 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 [<nomeDomínio>\<nomeLogon>]. Não é possível usar um UPN no formato nomeLogon@nomeDomínio. Veja o exemplo D mais adiante neste tópico.

  • 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.

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

  • HASHED
    Aplica-se somente a logons do SQL Server. Especifica que a senha digitada depois do argumento PASSWORD já está 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.

  • MUST_CHANGE
    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
    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. Essa opção pode ser expandida em uma versão futura do SQL Server.

  • SID = sid
    Aplica-se somente a logons do SQL Server. Especifica o GUID do novo logon do SQL Server. Se esta opção não for selecionada, o SQL Server nomeará um GUID automaticamente.

  • DEFAULT_DATABASE **=**database
    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
    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 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 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.

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

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

  • ASYMMETRIC KEY asym_key_name
    Especifica o nome de uma chave assimétrica a ser associada a este logon. Esta chave já deve ocorrer no banco de dados mestre.

Comentários

As senhas diferenciam maiúsculas e minúsculas.

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

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.

Observação importanteImportante

CHECK_EXPIRATION e CHECK_POLICY serão aplicados apenas no Windows Server 2003 e posteriores. Para obter mais informações, consulte Diretiva 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á existirem em master.

Permissões

Requer a permissão ALTER ANY LOGIN ou ALTER LOGON no servidor.

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

Exemplos

A. Criando um logon com uma senha

O exemplo a seguir cria um logon para uma ID de usuário específica 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.

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

B. Criando um logon mapeado para uma credencial

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

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

C. Criando um logon a partir de um certificado

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

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

D. 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.

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