CREATE LOGIN (Transact-SQL)
Cria um logon para bancos de dados do 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 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.
Nota
O Microsoft Entra ID era conhecido anteriormente como Azure Active Directory (Azure AD).
Para obter mais informações sobre as convenções de sintaxe, confira Convenções de sintaxe Transact-SQL.
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 *
-- 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
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 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. Os usuários, grupos e aplicativos do Microsoft Entra podem ser usados para criar logons.
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 o login_name.
Só se aplica à palavra-chave HASHED. Especifica o valor com hash da senha para o logon que está sendo criado.
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á hashed 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.
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.
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 login do administrador do sistema (sa).
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
.
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
.
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.
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.
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 &.
Especifica que o logon seja mapeado para um logon do Windows.
Especifica que o logon é mapeado para uma entidade de segurança do Microsoft Entra. Essa opção está disponível para SQL Server 2022 habilitado para Arc e versões posteriores. Para obter mais informações, consulte Autenticação do Microsoft Entra para SQL Server
Especifica o nome de um certificado a ser associado a este logon. Esse certificado já deve ocorrer no master
banco de dados.
Especifica o nome de uma chave assimétrica a ser associada a este logon. Essa chave já deve ocorrer no master
banco de dados.
- As senhas diferenciam maiúsculas de minúsculas.
- O pré-hash de senhas é suportado somente quando você está criando logons do SQL Server.
- Se
MUST_CHANGE
for especificado, CHECK_EXPIRATION e CHECK_POLICY devem ser definidos comoON
. Caso contrário, a instrução falhará. - Uma combinação de
CHECK_POLICY = OFF
eCHECK_EXPIRATION = ON
não é suportada. - Quando CHECK_POLICY é definido como
OFF
, lockout_time é redefinido eCHECK_EXPIRATION
definido comoOFF
.
Importante
CHECK_EXPIRATION e CHECK_POLICY só são impostos no Windows Server 2003 e versões posteriores. Para obter mais informações, consulte Password Policy.
- 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 se conectar ao SQL Server. Você pode criar um logon a partir de um certificado ou chave assimétrica somente quando o certificado ou a chave assimétrica já existir no
master
. - Para um script transferir logons, consulte Como transferir os logons e senhas entre instâncias do SQL Server 2005 e SQL Server 2008.
- Criar um logon automaticamente habilita o novo logon e concede a ele a permissão CONNECT SQL de nível de servidor.
- O modo de autenticação do servidor deve corresponder ao tipo de logon para permitir o acesso.
- Para obter informações sobre como criar um sistema de permissões, veja Introdução às permissões do mecanismo de banco de dados.
- 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.
Requer permissão CREATE LOGIN no servidor ou associação na função de servidor fixa ##MS_LoginManager##.
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.
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
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
Nota
A opção MUST_CHANGE não pode ser usada quando CHECK_EXPIRATION estiver OFF.
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
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
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
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
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 ;
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 statemnt 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;
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
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
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
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 *
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 o acesso de banco de dados para o Banco de Dados SQL
-- 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 ]
Nota
As entidades de servidor (logons) do Microsoft Entra 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 SQL ou no Azure Synapse.
Especifica que o logon é para Autenticação do Microsoft Entra.
Especifica a ID do objeto do Microsoft Entra. Se o OBJECT_ID
for especificado, o login_name não precisará 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.
Nota
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. Usá-lo com uma entidade de serviço exclusiva não é recomendado. 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.
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 o login_name.
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
.
- 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.
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 <nome_do_>login@<nome_do_>servidor. 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.
Somente o logon da entidade de segurança 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.
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
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
Este exemplo cria um logon no servidor lógico SQL do Azure usando as credenciais de um usuário bob@contoso.com
existente 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
Você pode criar um alias para seu login_name especificando a ID do objeto da entidade de serviço ou 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='4466e2f8-0fea-4c61-a470-xxxxxxxxxxxx';
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 na ID do Microsoft Entra.
* SQL do Azure
Instância Gerenciada *
-- 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
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 SQL do Azure ou no Synapse do Azure.
Especifica que o logon é para Autenticação do Microsoft Entra.
Especifica a ID do objeto do 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 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.
Nota
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.
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 o login_name.
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
.
A
FROM EXTERNAL PROVIDER
sintaxe cria entidades de segurança no nível do 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) que seja 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 SENHA 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 no
sys.server_principals
, com o valor da coluna de tipo definido comoE
etype_desc
definido como EXTERNAL_LOGIN para logons mapeados para usuários do Microsoft Entra ou o valor da coluna de tipo definido comoX
etype_desc
o valor definido como 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.
Somente o logon da entidade de segurança no nível do servidor (criado pelo processo de provisionamento) ou membros da securityadmin
função ou sysadmin
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.
Por padrão, a permissão padrão concedida a um logon recém-criado do Microsoft Entra émaster
: CONNECT SQL e VIEW ANY DATABASE.
Devem ter a permissão ALTER ANY LOGIN no servidor ou associação naquela das funções de servidor fixadas
securityadmin
ousysadmin
. Somente uma conta do 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 SQL, somente 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 SQL do Azure.
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 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
master
servidor, crie um usuário de banco de dados no banco de dados e use aALTER SERVER ROLE ... ADD MEMBER
instrução para adicionar o usuário a 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
sysadmin
função a um logon do Microsoft Entra:ALTER SERVER ROLE sysadmin ADD MEMBER [MS_Entra_login]
- Use o seguinte comando para adicionar a
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.
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 do Microsoft Entra, como a cláusula EXECUTE AS .
Somente entidades de servidor (logons) que fazem parte da
sysadmin
função podem executar as seguintes operações direcionadas a entidades do Microsoft Entra:- EXECUTE AS USER
- EXECUTE AS LOGIN
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. É 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>;
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
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
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
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
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
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
Para verificar o logon adicionado recentemente, execute o seguinte comando T-SQL:
SELECT *
FROM sys.server_principals;
GO
* Azure Synapse
Analytics *
-- Syntax for Azure Synapse Analytics
CREATE LOGIN login_name
{
FROM EXTERNAL PROVIDER
| WITH <option_list> [,..]
}
<option_list> ::=
PASSWORD = { 'password' }
[ , SID = sid ]
Nota
As entidades de servidor (logons) do Microsoft Entra 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, 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 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 SQL ou no Azure Synapse.
Especifica que o logon é para Autenticação do Microsoft Entra.
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 .
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 o login_name.
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
.
- As senhas diferenciam maiúsculas de minúsculas.
- 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.
- O modo de autenticação do servidor deve corresponder ao tipo de logon para permitir o acesso.
- Para obter informações sobre como criar um sistema de permissões, veja Introdução às permissões do mecanismo de banco de dados.
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 <nome_do_>login@<nome_do_>servidor. 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.
Somente o logon da entidade de segurança 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.
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
master
servidor, crie um usuário de banco de dados no banco de dados e use aALTER SERVER ROLE ... ADD MEMBER
instrução para adicionar o usuário a 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.
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
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) *
-- 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}
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 do 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 posteriormente 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 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.
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 o login_name.
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.
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.
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 &.
Especifica que o logon seja mapeado para um logon do Windows.
- 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ó são impostos no Windows Server 2003 e versões posteriores. Para obter mais informações, consulte Password Policy.
- 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.
- Para obter informações sobre como criar um sistema de permissões, veja Introdução às permissões do mecanismo de banco de dados.
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.
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.
O exemplo a seguir cria o logon Mary7
com senha A2c3456
.
CREATE LOGIN Mary7 WITH PASSWORD = 'A2c3456$#' ;
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;
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
- Guia de Introdução às permissões do mecanismo de banco de dados
- Entidades
- Política de senha
- ALTER LOGIN
- DROP LOGIN
- EVENTDATA
- Criar um logon