CREATE LOGIN (Transact-SQL)
Cria um logon do Mecanismo de Banco de Dados para SQL Server, Banco de dados SQL do Windows Azure e SQL Server PDW.
Observação |
---|
As opções CREATE LOGIN variam para SQL Server, Banco de dados SQL e SQL Server PDW. |
Convenções de sintaxe Transact-SQL
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
Sintaxe
-- Syntax for SQL Database
CREATE LOGIN login_name { WITH <option_list3> }
<option_list3> ::=
PASSWORD = { 'password' }
Sintaxe
-- Syntax for SQL Server PDW
CREATE LOGIN login_name { WITH <option_list4> }
< option_list4> ::=
PASSWORD = { 'password' } [ MUST_CHANGE ]
[ , <option_list5> [ ,... ] ]
<option_list5> ::=
CHECK_EXPIRATION = { ON | OFF}
| CHECK_POLICY = { ON | OFF}
Argumentos
login_name
Especifica o nome do logon criado. Há quatro tipos de logons: SQL Server logons, 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 [<nomededomínio>\<nome_de_logon>]. Não é possível usar um UPN no formato nome_de_logon@NomedeDomínio. Para obter um exemplo, consulte o exemplo D posteriormente neste tópico. SQL Server logons de autenticação são do tipo sysname e devem obedecer às regras de identificadores e não pode conter um '\'. Os logons do Windows podem conter um '\'.PASSWORD ='password'
Aplica-se somente a logons do SQL Server. Especifica a senha do logon que está sendo criado. Use uma senha forte. Para obter mais informações, consulte Senhas fortes e Política de senha.As senhas diferenciam maiúsculas de minúsculas. As senhas sempre devem ter pelo menos 8 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.
PASSWORD **=**hashed_password
Só se aplica à palavra-chave HASHED. Especifica o valor com hash da senha para o logon que está sendo criado.HASHED
Aplica-se somente a logons do SQL Server. Especifica que a senha inserida depois do argumento PASSWORD já tem hash. Se esta opção não estiver selecionada, a cadeia de caracteres inserida como senha recebe o 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 Server 7 ou anterior.MUST_CHANGE
Aplica-se somente a logons do SQL Server. Se esta opção estiver incluída, o SQL Server solicita ao usuário uma nova senha quando o novo logon for usado pela primeira vez.CREDENTIAL **=**credential_name
O nome de uma credencial a ser mapeada para um novo logon do SQL Server. A credencial já deve existir no servidor. No momento, esta opção somente vincula a credencial a um logon. Não é possível mapear uma credencial para logon sa.SID = sid
Aplica-se somente a logons do SQL Server. Especifica o GUID do novo logon do SQL Server. Se esta opção não for selecionada, o SQL Server nomeará um GUID automaticamente.DEFAULT_DATABASE **=**database
Especifica o banco de dados padrão a ser atribuído ao logon. Se esta opção não for incluída, o banco de dados padrão será definido como master.DEFAULT_LANGUAGE **=**language
Especifica o idioma padrão a ser atribuído ao logon. Se esta opção não for incluída, o idioma padrão será definido como o idioma padrão atual do servidor. Se o idioma padrão do servidor for alterado posteriormente, o idioma padrão do logon permanecerá inalterado.CHECK_EXPIRATION = { ON | OFF }
Aplica-se somente a logons do SQL Server. Especifica se a política de expiração de senha deve ser aplicada neste logon. O valor padrão é OFF.CHECK_POLICY = { ON | OFF }
Aplica-se somente a logons do SQL Server. Especifica se as políticas de senha do Windows do computador em que o SQL Server está em execução devem ser aplicadas neste logon. O valor padrão é ON.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, _, @, *, ^, %, !, $, #, or &.
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 master.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 master.
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 é definido 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 Política de senha. |
Os logons criados a partir de certificados ou chaves assimétricas só são usados para assinatura de código. Eles não podem ser usados para a conexão com o SQL Server. Você pode criar um logon a partir de um certificado ou chave assimétrica somente quando o certificado ou a chave já existe em 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.
Logons de banco de dados SQL
No Banco de dados SQL, a instrução CREATE LOGIN deve ser a única instrução em um lote.
Em alguns métodos de se conectar ao Banco de dados SQL, como sqlcmd, você deve anexar o nome do servidor Banco de dados SQL ao nome do logon na cadeia de conexão usando a notação <login>@<server>. Por exemplo, se seu logon for login1 e o nome totalmente qualificado do servidor Banco de dados SQL forem 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 para criar um logon.
Para obter mais informações sobre logons do Banco de dados SQL, consulte Gerenciando bancos de dados e logons no banco de dados SQL do Windows Azure.
Permissões
No SQL Server e no SQL Server PDW, requer a permissão ALTER ANY LOGIN no servidor ou associação na função de servidor fixa securityadmin.
no Banco de dados SQL, somente o logon principal do nível de 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.
Se a opção CREDENTIAL for usada, também será necessária a permissão ALTER ANY CREDENTIAL no servidor.
Próximas etapas
Depois de criar um logon, o logon pode se conectar ao aplicativo Mecanismo de Banco de Dados, Banco de dados SQL ou SQL Server PDW, mas só tem as permissões concedidas à 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, consulte CREATE USER (Transact-SQL).
Crie uma função de servidor definida pelo usuário usando CREATE SERVER ROLE (Transact-SQL). 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 (Transact-SQL) e ALTER SERVER ROLE (Transact-SQL).
Use sp_addsrvrolemember para adicionar o logon à função de servidor fixa. Para obter mais informações, consulte Funções de nível de servidor e sp_addsrvrolemember (Transact-SQL).
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 (Transact-SQL).
Exemplos
A. Criando um logon com uma senha
Aplica-se a todos.
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
Aplica-se a SQL Server e SQL Server PDW.
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.
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>' MUST_CHANGE;
GO
C. Criando um logon mapeado para uma credencial
Aplica-se a SQL Server.
O exemplo a seguir cria o logon para um usuário específico usando o usuário. Esse logon é mapeado para a credencial.
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>',
CREDENTIAL = <credentialName>;
GO
D. Criando um logon por meio de um certificado
Aplica-se a SQL Server.
O exemplo a seguir cria um logon para um usuário específico de um certificado em master.
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 por meio de uma conta de domínio do Windows
Aplica-se a SQL Server.
O exemplo a seguir cria um logon a partir de uma conta de domínio do Windows.
CREATE LOGIN [<domainName>\<login_name>] FROM WINDOWS;
GO