Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Cria um logon para bancos de dados SQL Server, Banco de Dados SQL do Azure, Instância Gerenciada 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 em transações. Se CREATE LOGIN for executado dentro de uma transação e a transação for revertida, a criação de login será revertida. Se executado dentro de uma transação, o login criado não pode ser usado até que a transação seja confirmada.
Observação
O Microsoft Entra ID era conhecido anteriormente como Azure Ative Directory (Azure AD).
Para obter mais informações sobre as convenções de sintaxe, consulte Transact-SQL convenções de sintaxe.
Selecione um produto
Na linha seguinte, selecione o nome do produto em que está interessado e apenas as informações desse produto são apresentadas.
* Servidor SQL *
Plataforma de análise
Sistema (PDW)
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 [WITH OBJECT_ID = 'objectid']
| 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 a partir 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 login_name@DomainName. Para obter um exemplo, consulte o exemplo E mais adiante 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 uma barra invertida (). Os logins do Windows podem conter um '\'. Os logins baseados em usuários do Ative Directory são limitados a nomes de 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. Os usuários, grupos e aplicativos do Microsoft Entra podem ser usados para criar logons.
PASSWORD ='senha'
Aplica-se somente a logons do SQL Server. Especifica a senha para o logon que está sendo criado. Use uma senha forte. Para obter mais informações, veja Palavras-passe Fortes e Política de Palavras-passe.
A partir do SQL Server 2012 (11.x), o SQL Server e o Banco de Dados SQL do Azure usavam um hash SHA-512 combinado com um sal aleatório e exclusivo de 32 bits. Este método tornou estatisticamente inviável para os atacantes deduzir senhas.
O SQL Server 2025 (17.x) introduz um algoritmo de hash iterado, RFC2898, também conhecido como função de derivação de chaves baseada em palavra-passe (PBKDF). Este algoritmo ainda usa SHA-512, mas hashes a senha várias vezes (100.000 iterações), retardando significativamente os ataques de força bruta. Essa alteração melhora a proteção por senha em resposta à evolução das ameaças à segurança e ajuda os clientes a cumprir as diretrizes do NIST SP 800-63b. Esta melhoria de segurança utiliza um algoritmo de hash mais forte, que pode aumentar ligeiramente o tempo de login para os logins de autenticação SQL. O impacto é geralmente menor em ambientes com pooling de ligações, mas pode ser mais notório em cenários sem pooling ou onde a latência de login é monitorizada de perto.
As palavras-passe diferenciam maiúsculas de minúsculas. As palavras-passe devem ter sempre pelo menos oito caracteres e não podem exceder 128 caracteres. Podem incluir a-z, A-Z, 0-9 e a maioria dos carateres não alfanuméricos. As senhas não podem conter aspas simples ou o login_name.
SENHA = hashed_password
Aplica-se apenas à palavra-chave HASHED. Especifica o valor em hash da senha para o logon que está sendo criado.
DESCARTADO
Aplica-se somente a logons do SQL Server. Especifica que a senha inserida após o argumento PASSWORD já está em hash. Se essa opção não estiver selecionada, a cadeia de caracteres inserida como senha será colocada em hash antes de ser armazenada no banco de dados. Essa opção só deve ser usada 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 somente a logons do SQL Server. Se essa opção estiver incluída, o SQL Server solicitará ao usuário uma nova senha na primeira vez que o novo logon for usado.
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, essa opção vincula apenas a credencial a um login. Uma credencial não pode ser mapeada para o login do administrador do sistema (sa).
SID = sid
Usado para recriar um login. Aplica-se apenas a logons de autenticação do SQL Server, não a 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 SID depende da versão do SQL Server. SID de logon do SQL Server: um valor literal de 16 bytes (binário(16)) baseado em um GUID. Por exemplo, SID = 0x14585E90117152449347750164BA00A7.
DEFAULT_DATABASE =base 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 =língua
Especifica o idioma padrão a ser atribuído ao login. 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 login permanecerá inalterado.
CHECK_EXPIRATION = { EM | DESLIGADO }
Aplica-se somente a logons do SQL Server. Especifica se a política de expiração de senha deve ser imposta neste login. O valor padrão é OFF.
CHECK_POLICY = { EM | DESLIGADO }
Aplica-se somente a logons do SQL Server. Especifica que as diretivas de senha do Windows do computador no qual o SQL Server está sendo executado devem ser impostas nesse logon. O valor padrão é ON.
Se a política do 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 &.
MAC OS
Especifica que o logon seja mapeado para um logon do Windows.
DE FORNECEDOR EXTERNO
Especifica que o logon é mapeado para uma entidade de segurança do Microsoft Entra. Esta opção está disponível para o SQL Server 2022 habilitado para Arc e versões posteriores. Para obter mais informações, consulte Autenticação do Microsoft Entra para SQL Server
COM OBJECT_ID = 'objectid'
Aplica-se a: SQL Server 2025 (17.x) e versões posteriores
Especifica a ID do objeto Microsoft Entra. Para obter mais informações sobre como usar a opção WITH OBJECT_ID, consulte logins do Microsoft Entra e usuários com nomes de exibição não exclusivos.
CERTIFICADO certname
Especifica o nome de um certificado a ser associado a esse login. Esse certificado já deve ocorrer no master banco de dados.
CHAVE ASSIMÉTRICA asym_key_name
Especifica o nome de uma chave assimétrica a ser associada a esse login. Essa chave já deve ocorrer no master banco de dados.
Observações
- As palavras-passe diferenciam maiúsculas de minúsculas.
- O pré-hash de senhas é suportado somente quando você está criando logons do SQL Server.
- Se
MUST_CHANGEfor especificado, CHECK_EXPIRATION e CHECK_POLICY devem ser definidos comoON. Caso contrário, a instrução falhará. - Uma combinação de
CHECK_POLICY = OFFeCHECK_EXPIRATION = ONnão é suportada. - Quando CHECK_POLICY estiver definido como
OFF, lockout_time será redefinido eCHECK_EXPIRATIONdefinido comoOFF.
Importante
CHECK_EXPIRATION e CHECK_POLICY só são impostas no Windows Server 2003 e versões posteriores. Para obter mais informações, consulte Política de senha.
- Os logins criados a partir de certificados ou chaves assimétricas são usados apenas para assinatura de código. Eles não podem ser usados para se conectar ao SQL Server. Você pode criar um login a partir de um certificado ou chave assimétrica somente quando o certificado ou a chave assimétrica já existir no
master. - Para obter um script para transferir logons, consulte Como transferir logons e senhas entre instâncias do SQL Server 2005 e do SQL Server 2008.
- A criação de um login habilita automaticamente o novo login e concede ao login a permissão CONNECT SQL no nível do servidor.
- O modo de autenticação do servidor deve corresponder ao tipo de login para permitir o acesso.
- Para obter informações sobre como criar um sistema de permissões, consulte Introdução às permissões do mecanismo de banco de dados.
Permissões
- Somente usuários com permissão ALTER ANY LOGIN no servidor ou associação à função de servidor fixa securityadmin podem criar logins. Para obter mais informações, consulte Server-Level Roles 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 para SQL Server 2022 e posterior
Requer a permissão CREATE LOGIN no servidor ou associação à função de servidor fixa ##MS_LoginManager##.
Depois de criar um login
Depois de criar um logon, o logon pode se conectar ao SQL Server, mas só tem as permissões concedidas à função pública . Considere a realização de algumas das seguintes atividades.
- Para se conectar a um banco de dados, crie um usuário de banco de dados para o logon. Para obter mais informações, consulte CREATE USER.
- Crie uma função de servidor definida pelo usuário usando CREATE SERVER ROLE. Use
ALTER SERVER ROLE ... ADD MEMBERpara 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_addsrvrolememberpara adicionar o logon a uma função de servidor fixa. Para obter mais informações, consulte Server-Level funções e sp_addsrvrolemember. - Use a instrução GRANT para conceder permissões no nível do servidor para o novo login ou para uma função que contenha o login. Para obter mais informações, consulte GRANT.
Exemplos
Um. Criar um login com uma senha
O exemplo a seguir cria um login 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 login para um usuário específico e atribui uma senha. A MUST_CHANGE opção exige que os usuários alterem essa senha na primeira vez que se conectarem 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 está DESATIVADO.
C. Criar um login mapeado para uma credencial
O exemplo a seguir cria o logon para um usuário específico, usando o usuário. Esse login é 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 login a partir de um certificado
O exemplo a seguir cria login 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 início de sessão a partir de uma conta de domínio do Windows
O exemplo a seguir cria um logon 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 login a partir 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 login e recriam o login. 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 login com vários argumentos
O exemplo a seguir mostra como cadeia de caracteres vários argumentos juntos usando vírgulas entre cada argumento. Substitua <password> por uma senha válida.
CREATE LOGIN [MyUser]
WITH PASSWORD = '<password>',
DEFAULT_DATABASE = MyDatabase,
CHECK_POLICY = OFF,
CHECK_EXPIRATION = OFF ;
H. Criar um login SQL com senha com hash
O exemplo a seguir mostra como criar logons SQL com a mesma senha que os logons existentes, conforme 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 login em um novo servidor de banco de dados. Ao fazer isso, o novo login 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;
Eu. Criar um login 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 login 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. User bob também pode ser um usuário convidado.
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
GO
K. Criar um login 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 login para um aplicativo Microsoft Entra
O exemplo a seguir cria um logon para o aplicativo Microsoft Entra myapp que existe no locatário contoso.
CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER
Conteúdo relacionado
* Banco de Dados SQL do Azure *
Plataforma de análise
Sistema (PDW)
Base de Dados SQL
Para obter mais informações sobre conectividade e autorização para o Banco de Dados SQL do Azure, consulte:
- Configurações de conectividade para o Banco de Dados SQL do Azure
- Autorizar acesso ao Banco de Dados SQL
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
de 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, grupo ou 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 do SQL ou na Sinapse do Azure.
DE FORNECEDOR EXTERNO
Especifica que o logon é para autenticação do Microsoft Entra.
COM OBJECT_ID = 'objectid'
Especifica a ID do objeto Microsoft Entra. Se o OBJECT_ID for especificado, o login_name não é necessário para corresponder ao nome de exibição do Microsoft Entra. O login_name deve ser um nome exclusivo na sys.server_principals visualização e aderir a todas as outras sysname limitações. Para obter mais informações sobre como usar a opção WITH OBJECT_ID, consulte logins 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 uma duplicata, a instrução CREATE LOGIN ou CREATE USER padrão deverá ser usada. A extensão WITH OBJECT_ID é um item de reparação para resolução de problemas, destinado ao 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á executado com êxito, mas não será óbvio para qual entidade de serviço o login ou usuário foi criado. É recomendável criar um alias usando um sufixo para identificar exclusivamente o principal de serviço. A extensão WITH OBJECT_ID não tem suporte para o SQL Server.
PASSWORD ='senha'
Especifica a senha para o logon SQL que está sendo criado. Use uma senha forte. Para obter mais informações, veja Palavras-passe Fortes e Política de Palavras-passe. A partir do SQL Server 2012 (11.x), as informações de senha armazenadas são calculadas usando SHA-512 da senha salgada.
As palavras-passe diferenciam maiúsculas de minúsculas. As palavras-passe devem ter sempre pelo menos oito caracteres e não podem exceder 128 caracteres. Podem incluir a-z, A-Z, 0-9 e a maioria dos carateres não alfanuméricos. As senhas não podem conter aspas simples ou o login_name.
SID = sid
Usado para recriar um login. Aplica-se apenas a logons de autenticação do SQL Server, não a 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 SID depende da versão do SQL Server. Para o Banco de dados SQL, este é um literal de 32 bytes (binário(32)) que consiste em 0x01060000000000640000000000000000 mais 16 bytes representando um GUID. Por exemplo, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.
Observações
- As palavras-passe diferenciam maiúsculas de minúsculas.
- A criação de um login habilita automaticamente o novo login e concede ao login a permissão CONNECT SQL no nível do servidor.
Importante
Consulte 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.
Iniciar sessão
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, você deve acrescentar o nome do servidor do Banco de dados SQL ao nome de logon na cadeia de conexão usando a <notação do servidor de logon>@<.> 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 é de 128 caracteres, login_name é limitado a 127 caracteres menos o comprimento do nome do servidor. No exemplo, login_name só pode ter 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, consulte Criar logons adicionais e usuários 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 servidor do Banco de dados SQL for myazureserver e seu 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 regras de firewall no nível de servidor são temporariamente armazenados em cache em cada banco de dados. Esta cache é atualizada periodicamente. Para forçar uma atualização do cache de autenticação e certificar-se de que um banco de dados tem a versão mais recente da tabela de logins, execute DBCC FLUSHAUTHCACHE.
Permissões
Somente o logon principal no nível do servidor (criado pelo processo de provisionamento) ou os loginmanager membros da função de banco de dados no master banco de dados podem criar novos logons. Para obter mais informações, consulte Criar logons adicionais e usuários com permissões administrativas.
Exemplos
Um. Criar um login com uma senha
O exemplo a seguir cria um login 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 login a partir de um SID
O exemplo a seguir cria primeiro um logon de autenticação do SQL Server e determina o SID do logon. 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 login e recriam o login. 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 login 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 a ID do objeto
Você pode criar um alias para seu login_name especificando a ID do objeto da entidade ou grupo de serviço 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 de objeto de uma entidade de serviço, consulte Objetos de entidade de serviço no Microsoft Entra ID.
Conteúdo relacionado
* Azure SQL
Instância gerenciada *
Plataforma de análise
Sistema (PDW)
Azure SQL Managed Instance
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, grupo ou aplicativo do Microsoft Entra. Caso contrário, o logon representa o nome do logon SQL que foi criado.
Os utilizadores 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 iniciar sessão em bases de dados na Base de Dados SQL do Azure, na Instância Gerida SQL do Azure ou na Sinapse do Azure.
DE
DE FORNECEDORES EXTERNOS
Especifica que o logon é para autenticação do Microsoft Entra.
COM OBJECT_ID = 'objectid'
Especifica a ID do objeto Microsoft Entra. Se o OBJECT_ID for especificado, o login_name pode ser um alias definido pelo usuário formado a partir do nome de exibição principal original com um sufixo anexado. O login_name deve ser um nome exclusivo na sys.server_principals visualização e aderir a todas as outras sysname limitações. Para obter mais informações sobre como usar a opção WITH OBJECT_ID, consulte logins 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 uma duplicata, a instrução CREATE LOGIN ou CREATE USER padrão deverá ser usada. A WITH OBJECT_ID extensão está em visualização pública e é um item de reparo de solução de problemas implementado para uso com entidades de serviço não exclusivas. Não é necessário 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á executado com êxito, mas não será óbvio para qual entidade de serviço o login ou usuário foi criado. É recomendável criar um alias usando um sufixo para identificar exclusivamente o principal de serviço. A extensão WITH OBJECT_ID não tem suporte para o SQL Server.
PASSWORD = 'palavra-passe'
Especifica a senha para o logon SQL que está sendo criado. Use uma senha forte. Para obter mais informações, veja Palavras-passe Fortes e Política de Palavras-passe. A partir do SQL Server 2012 (11.x), as informações de senha armazenadas são calculadas usando SHA-512 da senha salgada.
As palavras-passe diferenciam maiúsculas de minúsculas. As palavras-passe devem ter sempre pelo menos 10 caracteres e não podem exceder 128 caracteres. Podem incluir a-z, A-Z, 0-9 e a maioria dos carateres não alfanuméricos. As senhas não podem conter aspas simples ou o login_name.
SID = sid
Usado para recriar um login. 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 SID depende da versão do SQL Server. Para o Banco de dados SQL, este é um literal de 32 bytes (binário(32)) que consiste em 0x01060000000000640000000000000000 mais 16 bytes representando um GUID. Por exemplo, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.
Observações
A
FROM EXTERNAL PROVIDERsintaxe cria entidades de segurança no nível de servidor mapeadas para contas do Microsoft EntraQuando
FROM EXTERNAL PROVIDERé especificado:O login_name deve representar uma conta existente do Microsoft Entra (usuário, grupo ou aplicativo) acessível na ID do Microsoft Entra pela Instância Gerenciada SQL do Azure atual. Para entidades do Microsoft Entra, a sintaxe CREATE LOGIN requer:
UserPrincipalName do objeto Microsoft Entra para usuários do Microsoft Entra.
DisplayName do objeto 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 PROVIDERcláusula é omitida, um logon SQL regular é criado.Os logins do Microsoft Entra são visíveis no
sys.server_principals, com o tipo valor da coluna definido comoEetype_descdefinido como EXTERNAL_LOGIN para logons mapeados para usuários do Microsoft Entra ou digite valor da coluna definido comoXetype_descvalor definido como EXTERNAL_GROUP para logons mapeados para grupos do Microsoft Entra.Para obter um script para transferir logons, consulte Como transferir logons e senhas entre instâncias do SQL Server 2005 e do SQL Server 2008.
A criação de um login habilita automaticamente o novo login e concede ao login a permissão CONNECT SQL no nível do servidor.
Importante
Consulte 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.
Logins e permissões
Somente o logon principal no nível do servidor (criado pelo processo de provisionamento) ou os securityadmin membros da função ou sysadmin banco de dados no master banco de dados podem criar novos logons. Para obter mais informações, consulte Server-Level Roles e ALTER SERVER ROLE.
Por padrão, a permissão padrão concedida a um login recém-criado do Microsoft Entra émaster: CONNECT SQL e VIEW ANY DATABASE.
Logons de instância gerenciada SQL
Deve ter permissão ALTER ANY LOGIN no servidor ou associação em uma das funções
securityadminde servidor fixas ousysadmin. Somente uma conta Microsoft Entra com permissão ALTER ANY LOGIN no servidor ou associação a uma dessas funções pode executar o comando create.Se o logon for uma entidade de segurança SQL, somente logons que fazem parte da
sysadminfunçã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 SQL do Azure.
Depois de criar um login
Depois de criar um login, o login pode se conectar a uma instância gerenciada, mas só tem as permissões concedidas à função pública . Considere a realização de algumas das seguintes atividades.
Para criar um usuário a partir de um login do Microsoft Entra, consulte CREATE USER.
Para conceder permissões a um usuário em um banco de dados, use a
ALTER SERVER ROLE ... ADD MEMBERinstruçã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 obter mais informações, consulte Funções não administradoras, Funções administrativas adicionais no nível do servidor, ALTER SERVER ROLE e Declaração GRANT .Para conceder permissões em todo o
masterservidor, crie um usuário de banco de dados no banco de dados e use aALTER SERVER ROLE ... ADD MEMBERinstrução para adicionar o usuário a uma das funções de servidor administrativo. Para obter mais informações, consulte Server-Level Funções e ALTER SERVER ROLE e Funções de servidor.- Use o seguinte comando para adicionar a função a um login do
sysadminMicrosoft Entra:ALTER SERVER ROLE sysadmin ADD MEMBER [MS_Entra_login]
- Use o seguinte comando para adicionar a função a um login do
Use a instrução GRANT para conceder permissões no nível do servidor para o novo login ou para uma função que contenha o login. Para obter mais informações, consulte GRANT.
Limitações
Não há suporte para a configuração de um login 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 do Microsoft Entra, como a cláusula EXECUTE AS .
Somente entidades de servidor (logons) que fazem parte da
sysadminfunção podem executar as seguintes operações direcionadas a entidades do Microsoft Entra:- EXECUTAR COMO UTILIZADOR
- EXECUTAR COMO LOGIN
Os usuários externos (convidados) importados de outro diretório do Microsoft Entra não podem ser configurados diretamente como um administrador do Microsoft Entra para Instância Gerenciada do SQL usando o portal do Azure. Em vez disso, associe o usuário externo a um grupo atribuível por função e configure o grupo como administrador da instância. Você pode usar o PowerShell ou a 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 logins são salvos no banco de dados, que é um banco de dados do
mastersistema e, como tal, não é replicado geograficamente. Para resolver isso, os logins 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
Um. Criar um login com uma senha
O exemplo a seguir cria um login para um usuário específico e atribui uma senha.
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO
B. Criar um login a partir 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 login e recriam o login. 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 login 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 login 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. User bob também pode ser um usuário convidado.
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
GO
E. Criar um login 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 login para um aplicativo Microsoft Entra
O exemplo a seguir cria um logon para o aplicativo Microsoft Entra myapp que existe no locatário contoso.
CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER
G. Verificar logins recém-adicionados
Para verificar o logon recém-adicionado, execute o seguinte comando T-SQL:
SELECT *
FROM sys.server_principals;
GO
Conteúdo relacionado
* Sinapse do Azure
Análise *
Plataforma de análise
Sistema (PDW)
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 Microsoft Entra (logins) estão atualmente em visualização.
Quando usado com a cláusula FROM EXTERNAL PROVIDER, o logon especifica a entidade de segurança do Microsoft Entra, que é um usuário, grupo ou aplicativo do Microsoft Entra. Caso contrário, o logon representa o nome do logon SQL que foi criado.
Não há suporte para usuários e entidades de serviço da Microsoft (aplicativos Microsoft Entra) que são membros de mais de 2048 grupos de segurança do Microsoft Entra para entrar no banco de dados no Banco de Dados SQL, na Instância Gerenciada SQL ou na Sinapse do Azure.
DE FORNECEDOR EXTERNO
Especifica que o logon é para autenticação do Microsoft Entra.
login_name
Especifica o nome do logon criado. O SQL Analytics no Azure Synapse dá suporte apenas a logons SQL. Para criar contas para usuários do Microsoft Entra, use a instrução CREATE USER .
PASSWORD ='senha'
Especifica a senha para o logon SQL que está sendo criado. Use uma senha forte. Para obter mais informações, veja Palavras-passe Fortes e Política de Palavras-passe. A partir do SQL Server 2012 (11.x), as informações de senha armazenadas são calculadas usando SHA-512 da senha salgada.
As palavras-passe diferenciam maiúsculas de minúsculas. As palavras-passe devem ter sempre pelo menos oito caracteres e não podem exceder 128 caracteres. Podem incluir a-z, A-Z, 0-9 e a maioria dos carateres não alfanuméricos. As senhas não podem conter aspas simples ou o login_name.
SID = sid
Usado para recriar um login. Aplica-se apenas a logons de autenticação do SQL Server, não a 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 SID depende da versão do SQL Server. Para o SQL Analytics, este é um literal de 32 bytes (binário(32)) que consiste em 0x01060000000000640000000000000000 mais 16 bytes representando um GUID. Por exemplo, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.
Observações
- As palavras-passe diferenciam maiúsculas de minúsculas.
- Para obter um script para transferir logons, consulte Como transferir logons e senhas entre instâncias do SQL Server 2005 e do SQL Server 2008.
- A criação de um login habilita automaticamente o novo login e concede ao login a permissão CONNECT SQL no nível do servidor.
- O modo de autenticação do servidor deve corresponder ao tipo de login para permitir o acesso.
- Para obter informações sobre como criar um sistema de permissões, consulte Introdução às permissões do mecanismo de banco de dados.
Logins
A instrução CREATE LOGIN deve ser a única instrução em um lote.
Ao se conectar ao Azure Synapse usando ferramentas como sqlcmd, você deve acrescentar o nome do servidor do SQL Analytics ao nome de logon na cadeia de conexão usando a notação doservidor< de logon>@<>. Por exemplo, se o seu logon for login1 e o nome totalmente qualificado do servidor do SQL Analytics 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 é de 128 caracteres, login_name é limitado a 127 caracteres menos o comprimento do nome do servidor. No exemplo, login_name só pode ter 117 caracteres porque servername tem 10 caracteres.
Para criar um login, 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 servidor do Banco de dados SQL for myazureserver e seu logon for myemail@contoso.com, você deverá fornecer seu logon como myemail@contoso.com@myazureserver.
Os dados de login necessários para autenticar uma conexão e as regras de firewall no nível do servidor são temporariamente armazenados em cache em cada banco de dados. Esta cache é atualizada periodicamente. Para forçar uma atualização do cache de autenticação e certificar-se de que um banco de dados tem a versão mais recente da tabela de logins, execute DBCC FLUSHAUTHCACHE.
Para obter mais informações sobre logons, consulte Gerenciando bancos de dados e logons.
Permissões
Somente o logon principal no nível do servidor (criado pelo processo de provisionamento) ou os loginmanager membros da função de banco de dados no master banco de dados podem criar novos logons. Para obter mais informações, consulte Server-Level Roles e ALTER SERVER ROLE.
Depois de criar um login
Depois de criar um logon, o logon pode se conectar ao Azure Synapse, mas só tem as permissões concedidas à função pública . Considere a realização de algumas das seguintes atividades.
Para se conectar a um banco de dados, crie um usuário de banco de dados para o logon. Para obter mais informações, consulte CREATE USER.
Para conceder permissões a um usuário em um banco de dados, use a
ALTER SERVER ROLE ... ADD MEMBERinstruçã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 obter mais informações, consulte Funções não administradoras, Funções administrativas adicionais no nível do servidor, ALTER SERVER ROLE e Declaração GRANT .Para conceder permissões em todo o
masterservidor, crie um usuário de banco de dados no banco de dados e use aALTER SERVER ROLE ... ADD MEMBERinstrução para adicionar o usuário a uma das funções de servidor administrativo. Para obter mais informações, consulte Server-Level Funções e ALTER SERVER ROLE e Funções de servidor.Use a instrução GRANT para conceder permissões no nível do servidor para o novo login ou para uma função que contenha o login. Para obter mais informações, consulte GRANT.
Exemplos
Um. Criar um login com uma senha
O exemplo a seguir cria um login para um usuário específico e atribui uma senha.
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO
B. Criar um login a partir 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 login e recriam o login. 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
Conteúdo relacionado
* Análise
Sistema de plataforma (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 a partir 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>]. Não é possível usar um UPN no formato login_name@DomainName. Para obter um exemplo, consulte o exemplo D mais adiante 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 logins do Windows podem conter um '\'. Os logins baseados em usuários do Ative Directory são limitados a nomes de menos de 21 caracteres.
PASSWORD ='senha'
Aplica-se somente a logons do SQL Server. Especifica a senha para o logon que está sendo criado. Use uma senha forte. Para obter mais informações, veja Palavras-passe Fortes e Política de Palavras-passe. A partir do SQL Server 2012 (11.x), as informações de senha armazenadas são calculadas usando SHA-512 da senha salgada.
As palavras-passe diferenciam maiúsculas de minúsculas. As palavras-passe devem ter sempre pelo menos oito caracteres e não podem exceder 128 caracteres. Podem incluir a-z, A-Z, 0-9 e a maioria dos carateres não alfanuméricos. As senhas não podem conter aspas simples ou o login_name.
MUST_CHANGE
Aplica-se somente a logons do SQL Server. Se essa opção estiver incluída, o SQL Server solicitará ao usuário uma nova senha na primeira vez que o novo logon for usado.
CHECK_EXPIRATION = { EM | DESLIGADO }
Aplica-se somente a logons do SQL Server. Especifica se a política de expiração de senha deve ser imposta neste login. O valor padrão é OFF.
CHECK_POLICY = { EM | DESLIGADO }
Aplica-se somente a logons do SQL Server. Especifica que as diretivas de senha do Windows do computador no qual o SQL Server está sendo executado devem ser impostas nesse logon. O valor padrão é ON.
Se a política do 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 &.
MAC OS
Especifica que o logon seja mapeado para um logon do Windows.
Observações
- As palavras-passe diferenciam maiúsculas de minúsculas.
- Se MUST_CHANGE for especificado, CHECK_EXPIRATION e CHECK_POLICY deverão ser definidos como ATIVADO. 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 está definido como OFF, lockout_time é redefinido e CHECK_EXPIRATION é definido como OFF.
Importante
CHECK_EXPIRATION e CHECK_POLICY só são impostas no Windows Server 2003 e versões posteriores. Para obter mais informações, consulte Política de senha.
- Para obter um script para transferir logons, consulte Como transferir logons e senhas entre instâncias do SQL Server 2005 e do SQL Server 2008.
- A criação de um login habilita automaticamente o novo login e concede ao login a permissão CONNECT SQL no nível do servidor.
- Para obter informações sobre como criar um sistema de permissões, consulte Introdução às permissões do mecanismo de banco de dados.
Permissões
Somente usuários com permissão ALTER ANY LOGIN no servidor ou associação à função de servidor fixa securityadmin podem criar logins. Para obter mais informações, consulte Server-Level Roles e ALTER SERVER ROLE.
Depois de criar um login
Depois de criar um logon, o logon pode se conectar ao Azure Synapse Analytics, mas só tem as permissões concedidas à função pública . Considere a realização de algumas das seguintes atividades.
- Para se conectar a um banco de dados, crie um usuário de banco de dados para o logon. Para obter mais informações, consulte CREATE USER.
- Crie uma função de servidor definida pelo usuário usando CREATE SERVER ROLE. Use
ALTER SERVER ROLE ... ADD MEMBERpara 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_addsrvrolememberpara adicionar o logon a uma função de servidor fixa. Para obter mais informações, consulte Server-Level funções e sp_addsrvrolemember. - Use a instrução GRANT para conceder permissões no nível do servidor para o novo login ou para uma função que contenha o login. 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 login Mary7 com senha A2c3456.
CREATE LOGIN Mary7 WITH PASSWORD = 'A2c3456$#' ;
H. Opções de Utilização
O exemplo a seguir cria o login Mary8 com senha e alguns dos argumentos opcionais.
CREATE LOGIN Mary8 WITH PASSWORD = 'A2c3456$#' MUST_CHANGE,
CHECK_EXPIRATION = ON,
CHECK_POLICY = ON;
Eu. Criar um início de sessão 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 Mary Windows nomeada Contoso no domínio.
CREATE LOGIN [Contoso\Mary] FROM WINDOWS;
GO
Conteúdo relacionado
- Introdução às permissões do mecanismo de banco de dados
- Princípios
- Política de palavra-passe
- INICIAR SESSÃO ALTER
- APAGAR LOGIN
- DADOS DO EVENTO
- Criar um login