CREATE LOGIN (Transact-SQL)

Cria um logon para bancos de dados SQL Server, Banco de Dados SQL, Azure Synapse Analytics ou Analytics Platform System. Clique em uma das guias a seguir para a sintaxe, argumentos, comentários, 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.

Para obter mais informações sobre as convenções de sintaxe, consulte 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>[ ,... ] ]
    | 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á quatro tipos de logons: logons do SQL Server, logons do Windows, logons mapeados por certificado e logons mapeados por chave assimétrica. Ao criar logons mapeados de uma conta de domínio do Windows, você deve usar o nome de logon de usuário de versões anteriores ao Windows 2000 no formato [<domainName>\<nome_de_logon>]. Você não pode 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.

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 pelo SQL Server 2012 (11.x), 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 sempre devem 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 nem o login_name.

PASSWORD = hashed_password

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

HASHED

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

CREDENTIAL = 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 de 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 = database

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

DEFAULT_LANGUAGE = language

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

CHECK_EXPIRATION = { ON | OFF }

Aplica-se 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 | 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 &.

WINDOWS

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

CERTIFICATE certname

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

ASYMMETRIC KEY asym_key_name

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

Comentários

  • As senhas diferenciam maiúsculas de minúsculas.
  • O hash prévio de senhas tem suporte somente durante a criação de logons do SQL Server.
  • Se MUST_CHANGE for especificado, CHECK_EXPIRATION e CHECK_POLICY deverão ser definidos como ON. Caso contrário, a instrução falhará.
  • Não há suporte para uma combinação de CHECK_POLICY = OFF e CHECK_EXPIRATION = ON.
  • Quando CHECK_POLICY é definida como OFF, lockout_time é redefinido e CHECK_EXPIRATION é definido como OFF.

Importante

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

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

a. Criando um logon com uma senha

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

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

B. Criando um logon com uma senha que precisa 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 e posterior.

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. Criando um logon mapeado para uma credencial

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

Aplica-se a: SQL Server 2008 e posterior.

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

D. Criando um logon a partir de um certificado

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

Aplica-se a: SQL Server 2008 e posterior.

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

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

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

Aplica-se a: SQL Server 2008 e posterior.

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

F. Criando um logon por meio de um SID

O exemplo a seguir cria primeiro um logon de autenticação do SQL Server e determina 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. Como 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 do SQL com uma 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 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;

Consulte Também

* Banco de Dados SQL do Azure *

 

Banco de Dados SQL

Sintaxe

-- Syntax for Azure SQL Database
CREATE LOGIN login_name
 { WITH <option_list> }

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

Argumentos

login_name

Especifica o nome do logon criado. Os bancos de dados individuais e em pool no Banco de Dados SQL do Azure e os bancos de dados no Azure Synapse Analytics dão suporte apenas para logons do SQL. Para criar contas para usuários do Azure Active Directory ou para criar contas de usuário não associadas a um logon, use a instrução CREATE USER. Para obter mais informações, confira Gerenciar logons no Banco de Dados SQL do Azure.

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 sempre devem 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 nem o 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á um SID automaticamente. 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 de 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 ao nome do logon na cadeia de conexão usando a notação <login> @ <server> . 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 banco de dados mestre 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 criar um logon de autenticação do SQL Server no formato <loginname>@<servername>. Se seu servidor do Banco de Dados SQL for myazureserver e o logon for myemail@live.com , você deverá fornecer seu logon como myemail@live.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 da entidade de segurança no nível do servidor (criado pelo processo de provisionamento) ou membros da função de banco de dados loginmanager no banco de dados mestre podem criar novos logons. Para obter mais informações, confira Criar logons e usuários adicionais com permissões administrativas.

Exemplos

a. Criando um logon com uma senha

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

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

B. Criando um logon por meio 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

Consulte Também

* Instância Gerenciada
de SQL do Azure *

 

Instância Gerenciada do Azure SQL

Sintaxe

-- Syntax for Azure SQL Managed Instance
CREATE LOGIN login_name [FROM EXTERNAL PROVIDER] { 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 Azure AD (Active Directory), que é um usuário, um grupo ou um aplicativo do Azure AD. Caso contrário, o logon representa o nome do logon SQL que foi criado.

Os usuários e as entidades de serviço do Azure AD (aplicativos do Azure AD) que são membros de mais de 2048 grupos de segurança do Azure AD não podem fazer logon no banco de dados na Instância Gerenciada, no Banco de Dados SQL, nem no Azure Synapse.

FROM EXTERNAL PROVIDER

Especifica que o logon é para Autenticação do Azure AD.

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 ter sempre no mínimo dez 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 nem o 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á um SID automaticamente. 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.

  • A nova sintaxe é introduzida para a criação de entidades de segurança no nível de servidor mapeadas para contas do Azure AD (FROM EXTERNAL PROVIDER)

  • Quando FROM EXTERNAL PROVIDER é especificado:

    • O login_name deve representar uma conta existente do Azure AD (usuário, grupo ou aplicativo) acessível no Azure AD pela atual instância gerenciada do SQL. Para entidades de segurança do Azure Active Directory, a sintaxe de CREATE LOGIN exige:
      • UserPrincipalName do objeto do Azure AD para usuários do Azure AD.
      • DisplayName do objeto do Azure Active Directory para Grupos e Aplicativos do Azure AD.
    • A opção PASSWORD não pode ser usada.
  • Por padrão, quando a cláusula FROM EXTERNAL PROVIDER é omitida, um logon SQL regular é criado.

  • Logons do Azure AD são visíveis em sys.server_principals, com valor de coluna de tipo definido como E e type_desc definido como EXTERNAL_LOGIN para logons mapeados para os usuários do Azure AD ou o valor de coluna de tipo definido como X e o valor type_desc definido como EXTERNAL_GROUP para logons mapeados para grupos do Azure AD.

  • 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 da entidade de segurança no nível do servidor (criado pelo processo de provisionamento) ou membros da função de banco de dados securityadmin ou sysadmin no banco de dados mestre 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 para um logon do Azure AD recém-criado no mestre é: 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 Azure AD (Azure Active Directory) 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 fizerem parte da função sysadmin poderão usar o comando create para criar logons para uma conta do Azure AD.
  • Devem ser um membro do Azure AD dentro do mesmo diretório usado para a Instância Gerenciada do SQL do Azure.

Após criar um logon

Observação

A funcionalidade de administrador do Azure AD para a Instância Gerenciada de SQL do Azure após a criação foi alterada. Para obter mais informações, confira Nova funcionalidade de administrador do Azure AD para MI.

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 do Azure AD de um logon do Azure AD, confira CREATE USER.
  • Para conceder permissões a um usuário em um banco de dados, use o ALTER SERVER ROLE ... Instrução ADD MEMBER para adicionar o usuário a uma das funções de banco de dados internas ou a uma função personalizada ou conceder 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 banco de dados no banco de dados mestre e use ALTER SERVER ROLE ... Instrução ADD MEMBER para adicionar o usuário a uma das funções administrativas do servidor. Para obter mais informações, consulte Funções de nível de servidor, ALTER SERVER ROLE e Funções de servidor.
    • Use o comando a seguir para adicionar a função sysadmin a um logon do Azure AD: ALTER SERVER ROLE sysadmin ADD MEMBER [AzureAD_Login_name]
  • 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 definir um logon do Azure AD mapeado para um grupo do Azure AD como o proprietário do banco de dados.
  • Não há suporte para a representação de entidades de segurança no nível do servidor do Azure AD usando outras entidades de segurança do Azure AD, como a cláusula EXECUTE AS.
  • Somente entidades de segurança no nível do SQL Server (logons) que fazem parte do sysadmin podem executar as seguintes operações direcionadas a entidades de segurança do Azure AD:
    • EXECUTE AS USER
    • EXECUTE AS LOGIN
  • Usuários externos (convidados) importados de outro diretório do Azure AD não podem ser configurados diretamente como um administrador do Azure AD para a Instância Gerenciada de SQL usando o portal do Azure. Em vez disso, ingresse o usuário externo em um grupo habilitado para segurança do Azure AD e configure o grupo como o 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.
  • O logon não é replicado para a instância secundária em um grupo de failover. O logon é salvo no banco de dados mestre, que é um banco de dados do sistema e, dessa forma, não é replicado geograficamente. Para resolver isso, o usuário deve criar um logon com o mesma SID na instância secundária.
-- Code to create login on the secondary instance
CREATE LOGIN foo WITH PASSWORD = '<enterStrongPasswordHere>', SID = <login_sid>;

Exemplos

a. Criando um logon com uma senha

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

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

B. Criando um logon por meio 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. Criando um logon para uma conta local do Azure AD

O exemplo a seguir cria um logon para conta do Azure AD joe@myaad.onmicrosoft.com que existe no Azure AD do myaad.

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

D. Criando um logon para uma conta federada do Azure AD

O exemplo a seguir cria um logon para uma conta federada do Azure AD bob@contoso.com que existe no Azure AD chamada contoso. O usuário Bob também pode ser um usuário convidado.

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

E. Criando um logon para um grupo do Azure AD

O exemplo a seguir cria um logon para o grupo do Azure AD mygroup que existe no Azure AD do myaad

CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO

F. Criando um logon para um aplicativo do Azure AD

O exemplo a seguir cria um logon para o aplicativo do Azure AD myapp que existe no Azure AD do myaad

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

Consulte Também

* Azure Synapse
Analytics *

 

Azure Synapse Analytics

Sintaxe

-- Syntax for Azure Synapse Analytics
CREATE LOGIN login_name
 { WITH <option_list> }

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

Argumentos

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 Azure Active Directory, 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 sempre devem 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 nem o 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á um SID automaticamente. 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 o 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 <login> @ <server> . 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 banco de dados mestre.

As regras do SQL Server permitem criar um logon de autenticação do SQL Server no formato <loginname>@<servername>. Se seu servidor do Banco de Dados SQL for myazureserver e o logon for myemail@live.com , você deverá fornecer seu logon como myemail@live.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 da entidade de segurança no nível do servidor (criado pelo processo de provisionamento) ou membros da função de banco de dados loginmanager no banco de dados mestre podem criar novos logons. 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 o ALTER SERVER ROLE ... Instrução ADD MEMBER para adicionar o usuário a uma das funções de banco de dados internas ou a uma função personalizada ou conceder 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 banco de dados no banco de dados mestre e use ALTER SERVER ROLE ... Instrução ADD MEMBER para adicionar o usuário a uma das funções administrativas do servidor. 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

a. Criando um logon com uma senha

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

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

B. Criando um logon por meio 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

Consulte Também

* 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 de versões anteriores ao Windows 2000 no formato [<domainName>\<nome_de_logon>]. Você não pode 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.

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 pelo SQL Server 2012 (11.x), 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 sempre devem 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 nem o 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 | 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 &.

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 serão aplicados apenas no Windows Server 2003 e 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. Criando 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. Usando opções

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. Criando um logon a partir 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

Consulte Também