Partilhar via


CREATE LOGIN (Transact-SQL)

Cria um logon para bancos de dados SQL Server, Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure, Azure Synapse Analytics ou Analytics Platform System. Escolha uma das guias a seguir para a sintaxe, argumentos, observações, permissões e exemplos de uma versão específica.

CREATE LOGIN participa de transações. Se CREATE LOGIN for executado em uma transação e a transação for revertida, criação do logon será revertida. Se executado em uma transação, o logon criado não poderá ser usado até a transação ser confirmada.

Observação

O Microsoft Entra ID era conhecido como Azure Active Directory (Azure AD).

Para obter mais informações sobre as convenções de sintaxe, confira Convenções de sintaxe Transact-SQL.

Selecionar um produto

Na linha a seguir, selecione o nome do produto em que você tem interesse e somente as informações do produto serão exibidas.

* SQL Server *  

 

SQL Server

Sintaxe

-- Syntax for SQL Server
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>[ ,... ] ]
    | EXTERNAL PROVIDER
    | CERTIFICATE certname
    | ASYMMETRIC KEY asym_key_name

<windows_options> ::=
    DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language

Argumentos

login_name

Especifica o nome do logon criado. Há cinco tipos de logons: logons do SQL Server, logons do Windows, logons do Microsoft Entra, 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 no formato [<domainName>\<login_name>]. Não é possível usar um UPN no formato nome_de_logon@NomedeDomínio. Para obter um exemplo, consulte o exemplo E mais adiante neste artigo. Os logons de autenticação são do tipo sysname e devem estar em conformidade com as regras para Identificadores e não podem conter uma barra invertida (). Os logons do Windows podem conter um ' \ '. Os logons baseados em usuários do Active Directory são limitados a nomes com menos de 21 caracteres.

Ao usar a cláusula FROM EXTERNAL PROVIDER , o nome de logon deve corresponder ao nome de exibição de uma entidade de segurança existente do Microsoft Entra no mesmo locatário para o qual a instância SQL está habilitada para Arc. Usuários, grupos e aplicativos do Microsoft Entra podem ser usados para criar logons.

PASSWORD ='password'

Aplica-se apenas 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. Começando com SQL Server 2012 (11.x)armazenadas, informações de senha armazenadas são calculadas usando SHA-512 da senha com valor de sal.

As senhas diferenciam maiúsculas de minúsculas. As senhas devem sempre ter pelo menos oito 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 login_name.

SENHA = 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 apenas a logons do SQL Server. Especifica que a senha digitada depois do argumento PASSWORD já esteja com hash. Se essa opção não estiver selecionada, a cadeia de caracteres inserida como senha será criptografada 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 logins. A opção HASHED não pode ser usada com hashes criados pelo SQL 7 ou anterior.

MUST_CHANGE

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

CREDENCIAL =credential_name

O nome de uma credencial a ser mapeada para o novo logon do SQL Server. A credencial já deve existir no servidor. Atualmente, esta opção vincula apenas a credencial a um logon. Uma credencial não pode ser mapeada para o logon do Administrador do Sistema (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 essa opção não for usada, o SQL Server atribuirá um SID automaticamente. A estrutura do SID depende da versão do SQL Server. SID de logon do SQL Server: um valor literal de 16 bytes (binary(16) ) baseado em um GUID. Por exemplo, SID = 0x14585E90117152449347750164BA00A7.

DEFAULT_DATABASE =banco de dados

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

DEFAULT_LANGUAGE =idioma

Especifica o idioma padrão a ser atribuído ao logon. Se essa opção não estiver 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 apenas 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 | DESLIGADO }

Aplica-se apenas 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

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

FROM EXTERNAL PROVIDER

Especifica que o logon é mapeado para uma entidade de segurança do Microsoft Entra. Essa opção está disponível para o SQL Server habilitado para Arc 2022 e versões posteriores. Para obter mais informações, consulte Autenticação do Microsoft Entra para SQL Server

CERTIFICATE certname

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

ASYMMETRIC KEY asym_key_name

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

Comentários

  • As senhas diferenciam maiúsculas de minúsculas.
  • O pré-hash de senhas só tem suporte quando você está criando logons do SQL Server.
  • Se MUST_CHANGE for especificado, CHECK_EXPIRATION e CHECK_POLICY devem 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 são impostas apenas no Windows Server 2003 e versões posteriores. Para obter mais informações, consulte Password Policy.

Permissões

  • Apenas usuários com a permissão ALTER ANY LOGIN no servidor ou com associação na função de servidor fixa securityadmin podem criar logons. Para obter mais informações, confira Funções de nível de servidor e ALTER SERVER ROLE.
  • Se a opção CREDENTIAL for usada, também será necessária a permissão ALTER ANY CREDENTIAL no servidor.

Permissões do SQL Server 2022 e posteriores

Requer a permissão CREATE LOGIN no servidor ou associação na função de servidor fixa ##MS_LoginManager##.

Após criar um logon

Depois de criar um logon, ele poderá se conectar ao SQL Server, mas terá as permissões concedidas apenas à função pública. Execute algumas das atividades a seguir.

  • Para conectar-se a um banco de dados, crie um usuário de banco de dados para o logon. Para obter mais informações, confira CREATE USER.
  • Crie uma função de servidor definida pelo usuário usando CREATE SERVER ROLE. Use ALTER SERVER ROLE ... ADD MEMBER para adicionar o novo logon à função de servidor definida pelo usuário. Para obter mais informações, consulte CREATE SERVER ROLE e ALTER SERVER ROLE.
  • Use sp_addsrvrolemember para adicionar o logon a uma função de servidor fixa. Para obter mais informações, consulte Funções de nível de servidor e sp_addsrvrolemember.
  • Use a instrução GRANT para conceder permissões do nível de servidor para o novo logon ou para uma função que contém o logon. Para obter mais informações, consulte GRANT.

Exemplos

R. Crie um login 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. Crie um login com uma senha que deve ser alterada

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: SQL Server 2008 (10.0.x) e versões posteriores.

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

Observação

A opção MUST_CHANGE não pode ser usada quando CHECK_EXPIRATION estiver OFF.

C. Criar 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: SQL Server 2008 (10.0.x) e versões posteriores.

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

D. Criar um logon a partir de um certificado

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

Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores.

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. Criar um logon 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: SQL Server 2008 (10.0.x) e versões posteriores.

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

F. Criar um logon a partir de um SID

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

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

G. Criar um logon com vários argumentos

O exemplo a seguir mostra como encadear vários argumentos usando vírgulas entre cada argumento.

CREATE LOGIN [MyUser]
WITH PASSWORD = 'MyPassword',
DEFAULT_DATABASE = MyDatabase,
CHECK_POLICY = OFF,
CHECK_EXPIRATION = OFF ;

H. Criar um logon SQL com senha com hash

O exemplo a seguir mostra como criar Logons do SQL com a mesma senha que os logins existentes, como é feito em um cenário de migração. A primeira etapa é recuperar o hash de senha de Logons existentes no servidor de banco de dados de origem. Em seguida, o mesmo hash será usado para criar o Logon em um novo servidor de banco de dados. Ao fazer isso, o novo Logon terá a mesma senha do servidor antigo.

-- run this to retrieve the password hash for an individual Login:
SELECT LOGINPROPERTY('Andreas','PASSWORDHASH') AS password_hash;
-- as an alternative, the catalog view sys.sql_logins can be used to retrieve the password hashes for multiple accounts at once. (This could be used to create a dynamic sql statement from the result set
SELECT name, password_hash
FROM sys.sql_logins
  WHERE
    principal_id > 1    -- excluding sa
    AND
    name NOT LIKE '##MS_%##' -- excluding special MS system accounts
-- create the new SQL Login on the new database server using the hash of the source server
CREATE LOGIN Andreas
  WITH PASSWORD = 0x02000A1A89CD6C6E4C8B30A282354C8EA0860719D5D3AD05E0CAE1952A1C6107A4ED26BEBA2A13B12FAB5093B3CC2A1055910CC0F4B9686A358604E99BB9933C75B4EA48FDEA HASHED;

I. Criar um logon para um usuário do Microsoft Entra

O exemplo a seguir cria um logon para a conta joe@contoso.onmicrosoft.com do Microsoft Entra que existe no locatário do Microsoft Entra chamado contoso.

CREATE LOGIN [joe@contoso.onmicrosoft.com] FROM EXTERNAL PROVIDER

GO

J. Criar um logon para uma conta federada do Microsoft Entra

O exemplo a seguir cria um logon para uma conta bob@contoso.com federada do Microsoft Entra que existe em um locatário chamado contoso. O usuário Bob também pode ser um usuário convidado.

CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
GO

K. Criar um logon para um grupo do Microsoft Entra

O exemplo a seguir cria um logon para o grupo mygroup do Microsoft Entra que existe no locatário contoso.

CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO

L. Criar um logon para um aplicativo do Microsoft Entra

O exemplo a seguir cria um logon para o aplicativo myapp do Microsoft Entra que existe no locatário contoso.

CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER

* Banco de Dados SQL do Azure *  

 

Banco de Dados SQL

Para obter mais informações sobre conectividade e autorização para o Banco de Dados SQL do Azure, consulte:

Sintaxe

-- Syntax for Azure SQL Database
CREATE LOGIN login_name
  { 
    FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    | WITH <option_list> [,..] 
  }

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

Argumentos

login_name

Observação

As entidades de servidor do Microsoft Entra (logons) estão atualmente em visualização pública para o Banco de Dados SQL do Azure.

Quando usado com a cláusula FROM EXTERNAL PROVIDER, o logon especifica a entidade de segurança do Microsoft Entra, que é um usuário, um grupo ou um aplicativo do Microsoft Entra. Caso contrário, o logon representa o nome do logon SQL que foi criado.

Os usuários e entidades de serviço do Microsoft Entra que são membros de mais de 2048 grupos de segurança do Microsoft Entra não têm suporte para entrar no banco de dados no Banco de Dados SQL, na Instância Gerenciada de SQL ou no Azure Synapse.

FROM EXTERNAL PROVIDER

Especifica que o logon é para Autenticação do Microsoft Entra.

COM OBJECT_ID = 'objectid'

Especifica a ID do objeto do Microsoft Entra. Se for OBJECT_ID especificado, o login_name não será necessário corresponder ao nome de exibição do Microsoft Entra. O login_name deve ser um nome exclusivo na sys.server_principals exibição e aderir a todas as outras sysname limitações. Para obter mais informações sobre como usar a WITH OBJECT_ID opção, consulte Logons do Microsoft Entra e usuários com nomes de exibição não exclusivos.

Observação

Se o nome de exibição da entidade de serviço não for duplicado, a instrução padrão CREATE LOGIN ou CREATE USER deverá ser usada. A WITH OBJECT_ID extensão é um item de reparo de solução de problemas implementado para uso com entidades de serviço não exclusivas. Não é recomendado usá-lo com uma entidade de serviço exclusiva. Usar a extensão WITH OBJECT_ID para uma entidade de serviço sem adicionar um sufixo será uma ação executada com êxito, mas não será óbvio para qual entidade de serviço o logon ou o usuário foi criado. É recomendável criar um alias ao usar um sufixo para identificar exclusivamente a entidade de serviço. A extensão WITH OBJECT_ID não oferece suporte para SQL Server.

PASSWORD ='password'

Especifica a senha do logon do SQL que está sendo criado. Use uma senha forte. Para obter mais informações, consulte Senhas fortes e Política de senha. Começando com SQL Server 2012 (11.x)armazenadas, informações de senha armazenadas são calculadas usando SHA-512 da senha com valor de sal.

As senhas diferenciam maiúsculas de minúsculas. As senhas devem sempre ter pelo menos oito 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 login_name.

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 essa opção não for usada, o SQL Server atribuirá automaticamente um SID. A estrutura do SID depende da versão do SQL Server. Para o Banco de Dados SQL, trata-se de um literal de 32 bytes (binary(32) ) que consiste em 0x01060000000000640000000000000000, além de 16 bytes que representam um GUID. Por exemplo, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

Comentários

  • As senhas diferenciam maiúsculas de minúsculas.
  • Criar um logon automaticamente habilita o novo logon e concede a ele a permissão CONNECT SQL de nível de servidor.

Importante

Confira Gerenciar logons no Banco de Dados SQL do Azure para obter informações sobre como trabalhar com logons e usuários no Banco de Dados SQL do Azure.

Logon

Logons do Banco de Dados SQL

A instrução CREATE LOGIN deve ser a única instrução em um lote.

Em alguns métodos de conexão com o Banco de Dados SQL, como sqlcmd, é necessário acrescentar o nome do servidor do Banco de Dados SQL à ID do logon na cadeia de conexão usando a notação <logon>@<servidor>. Por exemplo, se o seu logon for login1 e o nome totalmente qualificado do servidor do Banco de Dados SQL for servername.database.windows.net, o parâmetro username da cadeia de conexão deverá ser login1@servername. Como o comprimento total do parâmetro username é 128 caracteres, login_name é limitado a 127 caracteres menos o comprimento do nome de servidor. No exemplo, login_name pode ter apenas 117 caracteres porque servername tem 10 caracteres.

No Banco de Dados SQL, você deve estar conectado ao master banco de dados com as permissões apropriadas para criar um logon. Para obter mais informações, confira Criar logons e usuários adicionais com permissões administrativas.

As regras do SQL Server permitem que você crie um logon de autenticação do SQL Server no formato <loginname>@<servername>. Se o seu servidor do Banco de Dados SQL for myazureserver e o logon for myemail@contoso.com, você deverá fornecer seu logon como myemail@contoso.com@myazureserver.

No Banco de Dados SQL, os dados de logon necessários para autenticar uma conexão e as regras de firewall no nível de servidor são armazenados em cache temporariamente em cada banco de dados. Esse cache é atualizado periodicamente. Para forçar uma atualização do cache de autenticação e garantir que um banco de dados tenha a versão mais recente da tabela de logons, execute DBCC FLUSHAUTHCACHE.

Permissões

Somente o logon principal no nível do servidor (criado pelo processo de provisionamento) ou membros da loginmanager função de banco de dados no master banco de dados podem criar novos logons. Para obter mais informações, confira Criar logons e usuários adicionais com permissões administrativas.

Exemplos

R. Crie um login com uma senha

O exemplo a seguir cria um logon para um usuário específico e atribui uma senha. Conecte-se aos master bancos de dados e use o exemplo de código a seguir.

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

B. Criar um logon a partir de um SID

O exemplo a seguir cria primeiro um logon de autenticação do SQL Server e determina seu SID. Conecte-se aos master bancos de dados e use o exemplo de código a seguir.

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

C. Criar um logon usando uma conta do Microsoft Entra

Este exemplo cria um logon no servidor lógico SQL do Azure usando as credenciais de um usuário bob@contoso.com que existe no domínio do Microsoft Entra chamado contoso. Conecte-se aos master bancos de dados e use o exemplo de código a seguir.

CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER;
GO

D. Criar um login com um alias usando o ID do objeto

Você pode criar um alias para seu login_name especificando a ID do objeto da entidade de serviço ou do grupo do Microsoft Entra. Conecte-se aos master bancos de dados e use o exemplo de código a seguir.

CREATE LOGIN [myapp4466e] FROM EXTERNAL PROVIDER 
  WITH OBJECT_ID='aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb';

Para obter mais informações sobre como obter a ID do objeto de uma entidade de serviço, consulte objetos da entidade de serviço na ID do Microsoft Entra.

* SQL do Azure
Instância Gerenciada *

 

Instância Gerenciada do Azure SQL

Sintaxe

-- Syntax for Azure SQL Managed Instance
CREATE LOGIN login_name [FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] ] { WITH <option_list> [,..]}

<option_list> ::=
    PASSWORD = {'password'}
    | SID = sid
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language

Argumentos

login_name

Quando usado com a cláusula FROM EXTERNAL PROVIDER, o logon especifica a entidade de segurança do Microsoft Entra, que é um usuário, um grupo ou um aplicativo do Microsoft Entra. Caso contrário, o logon representa o nome do logon SQL que foi criado.

Os usuários e entidades de serviço do Microsoft Entra que são membros de mais de 2048 grupos de segurança do Microsoft Entra não têm suporte para fazer logon em bancos de dados no Banco de Dados SQL do Azure, na Instância Gerenciada de SQL do Azure ou no Azure Synapse.

FROM EXTERNAL PROVIDER

Especifica que o logon é para Autenticação do Microsoft Entra.

COM OBJECT_ID = 'objectid'

Especifica a ID do objeto do Microsoft Entra. Se for OBJECT_ID especificado, o login_name poderá ser um alias definido pelo usuário formado a partir do nome de exibição da entidade de segurança original com um sufixo acrescentado. O login_name deve ser um nome exclusivo na sys.server_principals exibição e aderir a todas as outras sysname limitações. Para obter mais informações sobre como usar a WITH OBJECT_ID opção, consulte Logons do Microsoft Entra e usuários com nomes de exibição não exclusivos.

Observação

Se o nome de exibição da entidade de serviço não for duplicado, a instrução padrão CREATE LOGIN ou CREATE USER deverá ser usada. A extensão WITH OBJECT_ID está em visualização pública e é um item de reparo de solução de problemas implementado para o uso com entidades de serviço que não são exclusivas. Não é necessário usá-la com uma entidade de serviço exclusiva. Usar a extensão WITH OBJECT_ID para uma entidade de serviço sem adicionar um sufixo será uma ação executada com êxito, mas não será óbvio para qual entidade de serviço o logon ou o usuário foi criado. É recomendável criar um alias ao usar um sufixo para identificar exclusivamente a entidade de serviço. A extensão WITH OBJECT_ID não oferece suporte para SQL Server.

PASSWORD = 'password'

Especifica a senha do logon do SQL que está sendo criado. Use uma senha forte. Para obter mais informações, consulte Senhas fortes e Política de senha. Começando com SQL Server 2012 (11.x)armazenadas, informações de senha armazenadas são calculadas usando SHA-512 da senha com valor de sal.

As senhas diferenciam maiúsculas de minúsculas. As senhas devem sempre ter pelo menos 10 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 login_name.

SID = sid

Usado para recriar um logon. Aplica-se apenas a logons de autenticação do SQL Server. Especifica o SID do novo logon de autenticação do SQL Server. Se essa opção não for usada, o SQL Server atribuirá automaticamente um SID. A estrutura do SID depende da versão do SQL Server. Para o Banco de Dados SQL, trata-se de um literal de 32 bytes (binary(32) ) que consiste em 0x01060000000000640000000000000000, além de 16 bytes que representam um GUID. Por exemplo, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

Comentários

  • A FROM EXTERNAL PROVIDER sintaxe cria entidades de segurança no nível do servidor mapeadas para contas do Microsoft Entra

  • Quando FROM EXTERNAL PROVIDER é especificado:

    • O login_name deve representar uma conta existente do Microsoft Entra (usuário, grupo ou aplicativo) que pode ser acessada na ID do Microsoft Entra pela Instância Gerenciada de SQL do Azure atual. Para entidades de segurança do Microsoft Entra, a sintaxe CREATE LOGIN exige:

      • UserPrincipalName do objeto do Microsoft Entra para usuários do Microsoft Entra.

      • DisplayName do objeto do Microsoft Entra para grupos e aplicativos do Microsoft Entra.

    • A opção PASSWORD não pode ser usada.

  • Por padrão, quando a FROM EXTERNAL PROVIDER cláusula é omitida, um logon SQL regular é criado.

  • Os logons do Microsoft Entra são visíveis em sys.server_principals, com o valor da coluna type definido como E e type_desc definido como EXTERNAL_LOGIN para logons mapeados para usuários do Microsoft Entra ou o valor da coluna type definido como X type_desc EXTERNAL_GROUP para logons mapeados para grupos do Microsoft Entra.

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

Importante

Confira Gerenciar logons no Banco de Dados SQL do Azure para obter informações sobre como trabalhar com logons e usuários no Banco de Dados SQL do Azure.

Logons e permissões

Somente o logon principal no nível do servidor (criado pelo processo de provisionamento) ou membros da securityadmin função de banco de dados ou sysadmin no master banco de dados podem criar novos logons. Para obter mais informações, confira Funções de nível de servidor e ALTER SERVER ROLE.

Por padrão, a permissão padrão concedida a um logon recém-criado do master Microsoft Entra é: CONNECT SQL e VIEW ANY DATABASE.

Logons da Instância Gerenciada de SQL

  • Devem ter a permissão ALTER ANY LOGIN no servidor ou associação naquela das funções de servidor fixadas securityadmin ou sysadmin. Somente uma conta do Microsoft Entra com a permissão ALTER ANY LOGIN no servidor ou associação em uma dessas funções pode executar o comando create.

  • Se o logon for uma entidade de segurança SQL, somente os logons que fazem parte da sysadmin função poderão usar o comando create para criar logons para uma conta do Microsoft Entra.

  • Deve ser membro do mesmo locatário do Microsoft Entra que a Instância Gerenciada de SQL do Azure.

Após criar um logon

Após a criação de um logon, ele poderá se conectar a uma instância gerenciada, mas só terá as permissões concedidas à função pública. Execute algumas das atividades a seguir.

  • Para criar um usuário a partir de um logon do Microsoft Entra, consulte CRIAR USUÁRIO.

  • Para conceder permissões a um usuário em um banco de dados, use a ALTER SERVER ROLE ... ADD MEMBER instrução para adicionar o usuário a uma das funções de banco de dados internas ou a uma função personalizada, ou conceda permissões ao usuário diretamente usando a instrução GRANT . Para saber mais, confira Funções não de administrador, Funções administrativas adicionais de nível do servidor, ALTER SERVER ROLE e instrução GRANT.

  • Para conceder permissões em todo o servidor, crie um usuário de master banco de dados no banco de dados e use a ALTER SERVER ROLE ... ADD MEMBER instrução para incluir o usuário em uma das funções de servidor administrativo. Para obter mais informações, consulte Funções de nível de servidor, ALTER SERVER ROLE e Funções de servidor.

    • Use o seguinte comando para adicionar a função a um logon do sysadmin Microsoft Entra: ALTER SERVER ROLE sysadmin ADD MEMBER [MS_Entra_login]
  • Use a instrução GRANT para conceder permissões do nível de servidor para o novo logon ou para uma função que contém o logon. Para obter mais informações, consulte GRANT.

Limitações

  • Não há suporte para a configuração de um logon do Microsoft Entra mapeado para um grupo do Microsoft Entra como proprietário do banco de dados.

  • Há suporte para a representação de logons do Microsoft Entra usando outras entidades de segurança do Microsoft Entra, como a cláusula EXECUTE AS .

  • Somente entidades de servidor (logons) que fazem parte da função podem executar as seguintes operações direcionadas a entidades de sysadmin segurança do Microsoft Entra:

    • EXECUTE AS USER
    • EXECUTE AS LOGIN
  • Os usuários externos (convidados) importados de outro diretório do Microsoft Entra não podem ser configurados diretamente como administradores do Microsoft Entra para a Instância Gerenciada de SQL usando o portal do Azure. Em vez disso, junte o usuário externo a um grupo atribuível a uma função e configure o grupo como administrador da instância. É possível usar o PowerShell ou CLI do Azure para definir usuários convidados individuais como o administrador da instância.

  • Os logons não são replicados para a instância secundária em um grupo de failover. Os logons são salvos no master banco de dados, que é um banco de dados do sistema e, como tal, não é replicado geograficamente. Para resolver isso, os logons devem ser criados com o mesmo SID na instância secundária.

-- Code to create login on the secondary instance
CREATE LOGIN foo WITH PASSWORD = '<enterStrongPasswordHere>', SID = <login_sid>;

Exemplos

R. Crie um login 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. Criar um logon a partir de um SID

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

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

C. Criar um logon para um usuário do Microsoft Entra

O exemplo a seguir cria um logon para a conta joe@contoso.onmicrosoft.com do Microsoft Entra que existe no locatário chamado contoso.

CREATE LOGIN [joe@contoso.onmicrosoft.com] FROM EXTERNAL PROVIDER

GO

D. Criar um logon para uma conta federada do Microsoft Entra

O exemplo a seguir cria um logon para uma conta bob@contoso.com federada do Microsoft Entra que existe em um locatário chamado contoso. O usuário Bob também pode ser um usuário convidado.

CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
GO

E. Criar um logon para um grupo do Microsoft Entra

O exemplo a seguir cria um logon para o grupo mygroup do Microsoft Entra que existe no locatário contoso.

CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO

F. Criar um logon para um aplicativo do Microsoft Entra

O exemplo a seguir cria um logon para o aplicativo myapp do Microsoft Entra que existe no locatário contoso.

CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER

G. Verificar logons adicionados recentemente

Para verificar o logon adicionado recentemente, execute o seguinte comando T-SQL:

SELECT *
FROM sys.server_principals;
GO

* Azure Synapse
Analytics *

 

Azure Synapse Analytics

Sintaxe

-- Syntax for Azure Synapse Analytics
CREATE LOGIN login_name
  { 
    FROM EXTERNAL PROVIDER
    | WITH <option_list> [,..] 
  }

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

Argumentos

Observação

As entidades de segurança do servidor do Microsoft Entra (logons) estão atualmente em versão prévia.

Quando usado com a cláusula FROM EXTERNAL PROVIDER, o logon especifica a entidade de segurança do Microsoft Entra, que é um usuário, um grupo ou um aplicativo do Microsoft Entra. Caso contrário, o logon representa o nome do logon SQL que foi criado.

Os usuários e entidades de serviço da Microsoft (aplicativos do Microsoft Entra) que são membros de mais de 2048 grupos de segurança do Microsoft Entra não têm suporte para entrar no banco de dados no Banco de Dados SQL, na Instância Gerenciada de SQL ou no Azure Synapse.

FROM EXTERNAL PROVIDER

Especifica que o logon é para Autenticação do Microsoft Entra.

login_name

Especifica o nome do logon criado. A Análise do SQL no Azure Synapse dá suporte apenas a logons do SQL. Para criar contas para usuários do Microsoft Entra, use a instrução CREATE USER .

PASSWORD ='password'

Especifica a senha do logon do SQL que está sendo criado. Use uma senha forte. Para obter mais informações, consulte Senhas fortes e Política de senha. Começando com SQL Server 2012 (11.x)armazenadas, informações de senha armazenadas são calculadas usando SHA-512 da senha com valor de sal.

As senhas diferenciam maiúsculas de minúsculas. As senhas devem sempre ter pelo menos oito 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 login_name.

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 essa opção não for usada, o SQL Server atribuirá automaticamente um SID. A estrutura do SID depende da versão do SQL Server. Para Análise de SQL, trata-se de um literal de 32 bytes (binary(32) ) que consiste em 0x01060000000000640000000000000000, além de 16 bytes que representam um GUID. Por exemplo, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

Comentários

Logons

A instrução CREATE LOGIN deve ser a única instrução em um lote.

Ao se conectar ao Azure Synapse usando ferramentas, como sqlcmd, é necessário acrescentar o nome do servidor da Análise de SQL à ID de logon na cadeia de conexão usando a notação <logon>@<servidor>. Por exemplo, se o seu logon for login1 e o nome totalmente qualificado do servidor da Análise de SQL for servername.database.windows.net, o parâmetro username da cadeia de conexão deverá ser login1@servername. Como o comprimento total do parâmetro username é 128 caracteres, login_name é limitado a 127 caracteres menos o comprimento do nome de servidor. No exemplo, login_name pode ter apenas 117 caracteres porque servername tem 10 caracteres.

Para criar um logon, você deve estar conectado ao master banco de dados.

As regras do SQL Server permitem que você crie um logon de autenticação do SQL Server no formato <loginname>@<servername>. Se o seu servidor do Banco de Dados SQL for myazureserver e o logon for myemail@contoso.com, você deverá fornecer seu logon como myemail@contoso.com@myazureserver.

Os dados de logon necessários para autenticar uma conexão e as regras de firewall no nível do servidor são armazenados em cache temporariamente em cada banco de dados. Esse cache é atualizado periodicamente. Para forçar uma atualização do cache de autenticação e garantir que um banco de dados tenha a versão mais recente da tabela de logons, execute DBCC FLUSHAUTHCACHE.

Para saber mais sobre logons, confira Gerenciar bancos de dados e logons.

Permissões

Somente o logon principal no nível do servidor (criado pelo processo de provisionamento) ou membros da loginmanager função de banco de dados no master banco de dados podem criar novos logons. Para obter mais informações, confira Funções de nível de servidor e ALTER SERVER ROLE.

Após criar um logon

Depois de criar um logon, ele poderá se conectar ao Azure Synapse, mas terá as permissões concedidas apenas à função pública. Execute algumas das atividades a seguir.

  • Para conectar-se a um banco de dados, crie um usuário de banco de dados para o logon. Para obter mais informações, confira CREATE USER.

  • Para conceder permissões a um usuário em um banco de dados, use a ALTER SERVER ROLE ... ADD MEMBER instrução para adicionar o usuário a uma das funções de banco de dados internas ou a uma função personalizada, ou conceda permissões ao usuário diretamente usando a instrução GRANT . Para saber mais, confira Funções não de administrador, Funções administrativas adicionais de nível do servidor, ALTER SERVER ROLE e instrução GRANT.

  • Para conceder permissões em todo o servidor, crie um usuário de master banco de dados no banco de dados e use a ALTER SERVER ROLE ... ADD MEMBER instrução para incluir o usuário em uma das funções de servidor administrativo. Para obter mais informações, consulte Funções de nível de servidor, ALTER SERVER ROLE e Funções de servidor.

  • Use a instrução GRANT para conceder permissões do nível de servidor para o novo logon ou para uma função que contém o logon. Para obter mais informações, consulte GRANT.

Exemplos

R. Crie um login 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. Criar um logon a partir de um SID

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

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

* Analytics
Platform System (PDW) *

 

Sistema de plataforma de análise

Sintaxe

-- Syntax for Analytics Platform System
CREATE LOGIN loginName { WITH <option_list1> | FROM WINDOWS }

<option_list1> ::=
    PASSWORD = { 'password' } [ MUST_CHANGE ]
    [ , <option_list> [ ,... ] ]

<option_list> ::=
      CHECK_EXPIRATION = { ON | OFF}
    | CHECK_POLICY = { ON | OFF}

Argumentos

login_name

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 anterior ao Windows 2000 no formato [<domainName>\<login_name>]. Você não pode usar um UPN no formato login_name@DomainName. Para obter um exemplo, consulte o exemplo D posteriormente neste artigo. Os logins de autenticação 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 ' \ '. Os logons baseados em usuários do Active Directory estão limitados a nomes com menos de 21 caracteres.

PASSWORD ='password'

Aplica-se apenas 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. Começando com SQL Server 2012 (11.x)armazenadas, informações de senha armazenadas são calculadas usando SHA-512 da senha com valor de sal.

As senhas diferenciam maiúsculas de minúsculas. As senhas devem sempre ter pelo menos oito 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 login_name.

MUST_CHANGE

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

CHECK_EXPIRATION = { ON | OFF }

Aplica-se apenas 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 | DESLIGADO }

Aplica-se apenas 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

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

Comentários

  • As senhas diferenciam maiúsculas de minúsculas.
  • 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 é definida como OFF, lockout_time é redefinido e CHECK_EXPIRATION é definido como OFF.

Importante

CHECK_EXPIRATION e CHECK_POLICY são impostas apenas no Windows Server 2003 e versões posteriores. Para obter mais informações, consulte Password Policy.

Permissões

Apenas usuários com a permissão ALTER ANY LOGIN no servidor ou com associação na função de servidor fixa securityadmin podem criar logons. Para obter mais informações, confira Funções de nível de servidor e ALTER SERVER ROLE.

Após criar um logon

Depois de criar um logon, ele poderá se conectar ao Azure Synapse Analytics, mas terá as permissões concedidas apenas à função pública. Execute algumas das atividades a seguir.

  • Para conectar-se a um banco de dados, crie um usuário de banco de dados para o logon. Para obter mais informações, confira CREATE USER.
  • Crie uma função de servidor definida pelo usuário usando CREATE SERVER ROLE. Use ALTER SERVER ROLE ... ADD MEMBER para adicionar o novo logon à função de servidor definida pelo usuário. Para obter mais informações, consulte CREATE SERVER ROLE e ALTER SERVER ROLE.
  • Use sp_addsrvrolemember para adicionar o logon a uma função de servidor fixa. Para obter mais informações, consulte Funções de nível de servidor e sp_addsrvrolemember.
  • Use a instrução GRANT para conceder permissões do nível de servidor para o novo logon ou para uma função que contém o logon. Para obter mais informações, consulte GRANT.

Exemplos

G. Criar um logon de autenticação do SQL Server com uma senha

O exemplo a seguir cria o logon Mary7 com senha A2c3456.

CREATE LOGIN Mary7 WITH PASSWORD = 'A2c3456$#' ;

H. Opções de uso

O exemplo a seguir cria o logon Mary8 com senha e alguns argumentos opcionais.

CREATE LOGIN Mary8 WITH PASSWORD = 'A2c3456$#' MUST_CHANGE,
CHECK_EXPIRATION = ON,
CHECK_POLICY = ON;

I. Criar um logon de uma conta de domínio do Windows

O exemplo a seguir cria um logon usando uma conta de domínio do Windows chamada Mary no domínio Contoso.

CREATE LOGIN [Contoso\Mary] FROM WINDOWS;
GO