CREATE LOGIN (Transact-SQL)CREATE LOGIN (Transact-SQL)

Создает имя для входа в SQL Server, Базу данных SQL, Хранилище данных SQL или базы данных Microsoft Analytics Platform System.Creates a login for SQL Server, SQL Database, SQL Data Warehouse, or Analytics Platform System databases. Щелкните одну из следующих вкладок, чтобы изучить синтаксис, аргументы, примечания, разрешения и примеры для конкретной версии.Click one of the following tabs for the syntax, arguments, remarks, permissions, and examples for a particular version.

CREATE LOGIN участвует в транзакциях.CREATE LOGIN participates in transactions. Если откат транзакции CREATE LOGIN выполняется в рамках транзакции, для создания имени для входа также выполняется откат.If CREATE LOGIN is executed within a transaction and the transaction is rolled back, then login creation is rolled back. При выполнении в транзакции созданное имя входа не может использоваться до фиксации транзакции.If executed within a transaction, the created login cannot be used until the transaction is committed.

Дополнительные сведения о соглашениях о синтаксисе см. в статье Соглашения о синтаксисе в Transact-SQL.For more information about the syntax conventions, see Transact-SQL Syntax Conventions.

Выберите продукт!Click a product!

В следующей строке щелкните имя продукта, который вас интересует.In the following row, click whichever product name you are interested in. На этой веб-странице отобразится другой контент, относящийся к выбранному продукту.The click displays different content here on this webpage, appropriate for whichever product you click.

* SQL Server *  * SQL Server *   Отдельная база данных/эластичный пул Базы данных SQL
SQL Database
single database/elastic pool
Управляемый экземпляр Базы данных SQL
SQL Database
managed instance
Хранилище данных
SQL
SQL Data
Warehouse
Analytics Platform
System (PDW)
Analytics Platform
System (PDW)

 

SQL ServerSQL Server

СинтаксисSyntax

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

АргументыArguments

login_name — указывает имя пользователя для создаваемого имени входа.login_name Specifies the name of the login that is created. Имена входа бывают четырех типов: имена входа SQL Server, имена входа Windows, имена входа, сопоставленные с помощью сертификата, а также имена входа, сопоставленные с помощью асимметричного ключа.There are four types of logins: SQL Server logins, Windows logins, certificate-mapped logins, and asymmetric key-mapped logins. При создании имен входа, сопоставленных с учетной записью домена Windows, необходимо использовать имя входа версии, более ранней, чем Windows 2000, с форматом [<domainName>\<login_name>].When you are creating logins that are mapped from a Windows domain account, you must use the pre-Windows 2000 user logon name in the format [<domainName>\<login_name>]. Нельзя использовать имя участника-пользователя в формате login_name@DomainName.You cannot use a UPN in the format login_name@DomainName. См. приведенный ниже пример Г.For an example, see example D later in this article. Имена входа проверки подлинности имеют тип sysname, должны соответствовать правилам для идентификаторов и не могут содержать символ " \ ".Authentication logins are type sysname and must conform to the rules for Identifiers and cannot contain a '\'. Имена входа Windows могут содержать символы « \ ».Windows logins can contain a '\'. Имена входа, основанные на пользователях Active Directory, могут иметь не более 21 символа в длину.Logins based on Active Directory users, are limited to names of fewer than 21 characters.

PASSWORD = 'password' Применяется только к именам входа SQL Server.PASSWORD ='password' Applies to SQL Server logins only. Задает пароль для создаваемого имени входа.Specifies the password for the login that is being created. Выбирайте надежные пароли.Use a strong password. Дополнительные сведения см. в статьях Надежные пароли и Политика паролей.For more information, see Strong Passwords and Password Policy. Начиная с SQL Server 2012 (11.x), сохраненные сведения о пароле вычисляются с помощью SHA-512 "соленого" пароля.Beginning with SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

В паролях учитывается регистр символов.Passwords are case-sensitive. Пароли всегда должны содержать не менее восьми символов и не могут содержать более 128 символов.Passwords should always be at least eight characters long, and cannot exceed 128 characters. Пароли могут содержать символы a-z, A-Z, 0-9 и большинство неалфавитных символов.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Пароли не могут содержать одиночные кавычки или login_name.Passwords cannot contain single quotes, or the login_name.

PASSWORD = hashed_password — применяется только к ключевому слову HASHED.PASSWORD = hashed_password Applies to the HASHED keyword only. Указывает хэшированное значение пароля для создаваемого имени входа.Specifies the hashed value of the password for the login that is being created.

HASHED Применяется только к именам входа SQL Server.HASHED Applies to SQL Server logins only. Указывает, что пароль, введенный после аргумента PASSWORD, уже хэширован.Specifies that the password entered after the PASSWORD argument is already hashed. Если этот параметр не выбран, то строка, введенная в качестве пароля, хэшируется перед сохранением в базе данных.If this option is not selected, the string entered as password is hashed before it is stored in the database. Данный параметр может быть применен только для миграции баз данных с одного сервера на другой.This option should only be used for migrating databases from one server to another. Не используйте параметр HASHED для создания новых имен входа.Do not use the HASHED option to create new logins. Параметр HASHED нельзя использовать с хэшами, созданными в SQL 7 или более ранних версиях.The HASHED option cannot be used with hashes created by SQL 7 or earlier.

MUST_CHANGE применяется только к именам входа SQL Server.MUST_CHANGE Applies to SQL Server logins only. Если этот параметр задан, то при первом использовании нового имени входа SQL Server запрашивает новый пароль.If this option is included, SQL Server prompts the user for a new password the first time the new login is used.

CREDENTIAL = credential_name — имя учетных данных для сопоставления с новым именем входа SQL Server.CREDENTIAL =credential_name The name of a credential to be mapped to the new SQL Server login. Учетные данные уже должны существовать на сервере.The credential must already exist in the server. В настоящее время этот параметр только связывает учетные данные с именем входа.Currently this option only links the credential to a login. Учетные данные не могут быть сопоставлены с именем входа системного администратора (sa).A credential cannot be mapped to the System Administrator (sa) login.

SID = sid — используется для повторного создания имени входа.SID = sid Used to recreate a login. Применяется только к именам входа проверки подлинности SQL Server, но не относится к именам входа проверки подлинности Windows.Applies to SQL Server authentication logins only, not Windows authentication logins. Указывает идентификатор SID нового имени входа проверки подлинности SQL Server.Specifies the SID of the new SQL Server authentication login. Если этот параметр не используется, SQL Server назначает идентификатор SID автоматически.If this option is not used, SQL Server automatically assigns a SID. Структура идентификатора SID зависит от версии SQL Server.The SID structure depends on the SQL Server version. Идентификатор SID имени входа SQL Server: 16-байтовое (binary(16) ) литеральное значение, основанное на GUID.SQL Server login SID: a 16 byte (binary(16)) literal value based on a GUID. Например, SID = 0x14585E90117152449347750164BA00A7.For example, SID = 0x14585E90117152449347750164BA00A7.

DEFAULT_DATABASE = database — указывает базу данных по умолчанию, связываемую с именем входа.DEFAULT_DATABASE =database Specifies the default database to be assigned to the login. Если этот параметр не задан, то базой данных по умолчанию становится master.If this option is not included, the default database is set to master.

DEFAULT_LANGUAGE = language — указывает язык по умолчанию, присвоенный имени входа.DEFAULT_LANGUAGE =language Specifies the default language to be assigned to the login. Если этот параметр не задан, то в качестве языка по умолчанию выбирается текущий язык по умолчанию для сервера.If this option is not included, the default language is set to the current default language of the server. При смене языка по умолчанию для сервера язык по умолчанию имени входа не меняется.If the default language of the server is later changed, the default language of the login remains unchanged.

CHECK_EXPIRATION = { ON | OFF } — применяется только к именам входа SQL Server.CHECK_EXPIRATION = { ON | OFF } Applies to SQL Server logins only. Указывает, должна ли политика истечения срока действия паролей принудительно применяться к этому имени входа.Specifies whether password expiration policy should be enforced on this login. Значение по умолчанию — OFF.The default value is OFF.

CHECK_POLICY = { ON | OFF } — применяется только к именам входа SQL Server.CHECK_POLICY = { ON | OFF } Applies to SQL Server logins only. Указывает, что политики паролей Windows компьютера, на котором работает SQL Server, должны принудительно применяться к этому имени входа.Specifies that the Windows password policies of the computer on which SQL Server is running should be enforced on this login. Значение по умолчанию — ON.The default value is ON.

Если политика Windows требует надежных паролей, то пароль должен обладать по крайней мере тремя из следующих четырех качеств:If the Windows policy requires strong passwords, passwords must contain at least three of the following four characteristics:

  • Наличие символов верхнего регистра (A-Z).An uppercase character (A-Z).
  • Наличие строчных символов (a-z).A lowercase character (a-z).
  • Числа (0-9).A digit (0-9).
  • Один из неалфавитных символов, например пробел, _, @, *, ^, %! #, $ или &.One of the non-alphanumeric characters, such as a space, _, @, *, ^, %, !, $, #, or &.

WINDOWS — указывает, что имя входа сопоставлено с именем входа Windows.WINDOWS Specifies that the login be mapped to a Windows login.

CERTIFICATE certname — определяет имя сертификата, связываемого с данным именем входа.CERTIFICATE certname Specifies the name of a certificate to be associated with this login. Этот сертификат должен уже существовать в базе данных master.This certificate must already occur in the master database.

ASYMMETRIC KEY asym_key_name — определяет имя асимметричного ключа, связываемого с этим именем входа.ASYMMETRIC KEY asym_key_name Specifies the name of an asymmetric key to be associated with this login. Этот ключ должен уже существовать в базе данных master.This key must already occur in the master database.

RemarksRemarks

  • В паролях учитывается регистр символов.Passwords are case-sensitive.
  • Предварительное хэширование паролей поддерживается только при создании имен входа SQL Server.Prehashing of passwords is supported only when you are creating SQL Server logins.
  • Если задан параметр MUST_CHANGE, то параметры CHECK_EXPIRATION и CHECK_POLICY должны иметь значение ON.If MUST_CHANGE is specified, CHECK_EXPIRATION and CHECK_POLICY must be set to ON. В противном случае выполнение инструкции приведет к ошибке.Otherwise, the statement will fail.
  • Сочетание CHECK_POLICY = OFF и CHECK_EXPIRATION = ON не поддерживается.A combination of CHECK_POLICY = OFF and CHECK_EXPIRATION = ON is not supported.
  • Если значение CHECK_POLICY равно OFF, то lockout_time сбрасывается и параметру CHECK_EXPIRATION также присваивается значение OFF.When CHECK_POLICY is set to OFF, lockout_time is reset and CHECK_EXPIRATION is set to OFF.

Важно!

Параметры CHECK_EXPIRATION и CHECK_POLICY принудительно применяются только в Windows Server 2003 и более поздних версиях.CHECK_EXPIRATION and CHECK_POLICY are only enforced on Windows Server 2003 and later. Дополнительные сведения см. в разделе Политика паролей.For more information, see Password Policy.

  • Имена входа, созданные из сертификатов или асимметричных ключей, используются только для подписи кода.Logins created from certificates or asymmetric keys are used only for code signing. Они не могут использоваться для подключения к SQL Server.They cannot be used to connect to SQL Server. Имя входа можно создать на основе сертификата или ассиметричного ключа только в том случае, если сертификат или асимметричный ключ уже существуют в базе данных master.You can create a login from a certificate or asymmetric key only when the certificate or asymmetric key already exists in master.
  • Скрипт для передачи имен входа см. в разделе Способы передачи имен входа и паролей между экземплярами SQL Server 2005 и SQL Server 2008.For a script to transfer logins, see How to transfer the logins and the passwords between instances of SQL Server 2005 and SQL Server 2008.
  • При создании имени входа оно автоматически включается, и ему предоставляется разрешение CONNECT SQL уровня сервера.Creating a login automatically enables the new login and grants the login the server level CONNECT SQL permission.
  • Для разрешения доступа режим проверки подлинности сервера должен соответствовать типу имени входа.The server's authentication mode must match the login type to permit access.
  • Сведения о проектировании системы разрешений см. в статье Getting Started with Database Engine Permissions.For information about designing a permissions system, see Getting Started with Database Engine Permissions.

РазрешенияPermissions

  • Создавать имена входа могут только пользователи с разрешением ALTER ANY LOGIN на сервере или имеющие членство в предопределенной роли сервера securityadmin.Only users with ALTER ANY LOGIN permission on the server or membership in the securityadmin fixed server role can create logins. Дополнительные сведения см. в разделах Роли уровня сервера и ALTER SERVER ROLE.For more information, see Server-Level Roles and ALTER SERVER ROLE.
  • Если используется параметр CREDENTIAL , также необходимо разрешение ALTER ANY CREDENTIAL на сервере.If the CREDENTIAL option is used, also requires ALTER ANY CREDENTIAL permission on the server.

После создания имени входаAfter creating a login

Созданное имя входа может подключаться к SQL Server, но имеет разрешения только для роли public.After creating a login, the login can connect to SQL Server, but only has the permissions granted to the public role. Попробуйте выполнить некоторые из приведенных ниже действий.Consider performing some of the following activities.

  • Чтобы подключиться к базе данных, создайте пользователя базы данных для имени входа.To connect to a database, create a database user for the login. Дополнительные сведения см. в статье об инструкции CREATE USER.For more information, see CREATE USER.
  • Создайте определяемую пользователем роль сервера с помощью CREATE SERVER ROLE.Create a user-defined server role by using CREATE SERVER ROLE. Воспользуйтесь инструкциями ALTER SERVER ROLE ... ADD MEMBER для добавления нового имени входа к определяемой пользователем роли сервера.Use ALTER SERVER ROLE ... ADD MEMBER to add the new login to the user-defined server role. Дополнительные сведения см. в статьях CREATE SERVER ROLE и ALTER SERVER ROLE.For more information, see CREATE SERVER ROLE and ALTER SERVER ROLE.
  • Воспользуйтесь процедурой sp_addsrvrolemember для добавления имени входа к предопределенной роли сервера.Use sp_addsrvrolemember to add the login to a fixed server role. Дополнительные сведения см. в разделе Роли уровня сервера и sp_addsrvrolemember.For more information, see Server-Level Roles and sp_addsrvrolemember.
  • Воспользуйтесь инструкцией GRANT, чтобы предоставить разрешения уровня сервера новому имени входа или роли, содержащей это имя входа.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Дополнительные сведения см. в статье GRANT.For more information, see GRANT.

ПримерыExamples

A.A. Создание имени входа с паролемCreating a login with a password

В следующем примере создается имя входа для конкретного пользователя и назначается пароль.The following example creates a login for a particular user and assigns a password.

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

Б.B. Создание имени входа с паролем, который необходимо изменитьCreating a login with a password that must be changed

В следующем примере создается имя входа для конкретного пользователя и назначается пароль.The following example creates a login for a particular user and assigns a password. Параметр MUST_CHANGE требует, чтобы пользователь изменил этот пароль при первом подключении к серверу.The MUST_CHANGE option requires users to change this password the first time they connect to the server.

Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

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

Примечание

Невозможно использовать параметр MUST_CHANGE, если параметр CHECK_EXPIRATION имеет значение OFF.The MUST_CHANGE option cannot be used when CHECK_EXPIRATION is OFF.

В.C. Создание имени входа, сопоставленного с учетными даннымиCreating a login mapped to a credential

В следующем примере создается имя входа для конкретного пользователя с использованием идентификатора пользователя.The following example creates the login for a particular user, using the user. Это имя входа сопоставляется с учетными данными.This login is mapped to the credential.

Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

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

Г.D. Создание имени входа на основе сертификатаCreating a login from a certificate

В следующем примере создается имя входа для конкретного пользователя на основе сертификата в базе данных master.The following example creates login for a particular user from a certificate in master.

Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

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. Создание имени входа на основе учетной записи домена WindowsCreating a login from a Windows domain account

В следующем примере имя входа создается на основе учетной записи домена Windows.The following example creates a login from a Windows domain account.

Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

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

Е.F. Создание имени входа на основе SIDCreating a login from a SID

В следующем примере создается имя входа с проверкой подлинности SQL Server и определяется его SID.The following example first creates a SQL Server authentication login and determines the SID of the login.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';
SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Наш запрос возвращает идентификатор SID 0x241C11948AEEB749B0D22646DB1A19F2.My query returns 0x241C11948AEEB749B0D22646DB1A19F2 as the SID. Ваш запрос вернет другое значение.Your query will return a different value. Следующие выражения удаляют имя входа, а затем повторно создают имя входа.The following statements delete the login, and then recreate the login. Используйте SID из предыдущего запроса.Use the SID from your previous query.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

См. также:See Also

SQL ServerSQL Server * Отдельная база данных/эластичный пул Базы данных SQL
*
* SQL Database
single database/elastic pool *
Управляемый экземпляр Базы данных SQL
SQL Database
managed instance
Хранилище данных
SQL
SQL Data
Warehouse
Analytics Platform
System (PDW)
Analytics Platform
System (PDW)

 

Отдельная база данных или эластичный пул Базы данных SQL AzureAzure SQL Database single database/elastic pool

СинтаксисSyntax

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

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

АргументыArguments

login_name — указывает имя пользователя для создаваемого имени входа.login_name Specifies the name of the login that is created. Отдельная база данных или эластичный пул Базы данных SQL Azure поддерживает только имена входа SQL.Azure SQL Database single database/elastic pool supports only SQL logins.

PASSWORD =' password* '  — указывает пароль для создаваемого имени входа SQL.PASSWORD =' password*' Specifies the password for the SQL login that is being created. Выбирайте надежные пароли.Use a strong password. Дополнительные сведения см. в статьях Надежные пароли и Политика паролей.For more information, see Strong Passwords and Password Policy. Начиная с версии SQL Server 2012 (11.x)SQL Server 2012 (11.x) сохраненные сведения о пароле вычисляются с помощью SHA-512 соленого пароля.Beginning with SQL Server 2012 (11.x)SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

В паролях учитывается регистр символов.Passwords are case-sensitive. Пароли всегда должны содержать не менее восьми символов и не могут содержать более 128 символов.Passwords should always be at least eight characters long, and cannot exceed 128 characters. Пароли могут содержать символы a-z, A-Z, 0-9 и большинство неалфавитных символов.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Пароли не могут содержать одиночные кавычки или login_name.Passwords cannot contain single quotes, or the login_name.

SID = sid — используется для повторного создания имени входа.SID = sid Used to recreate a login. Применяется только к именам входа проверки подлинности SQL Server, но не относится к именам входа проверки подлинности Windows.Applies to SQL Server authentication logins only, not Windows authentication logins. Указывает идентификатор SID нового имени входа проверки подлинности SQL Server.Specifies the SID of the new SQL Server authentication login. Если этот параметр не используется, SQL Server назначает идентификатор SID автоматически.If this option is not used, SQL Server automatically assigns a SID. Структура идентификатора SID зависит от версии SQL Server.The SID structure depends on the SQL Server version. Для базы данных SQL это 32-байтовый (binary(32) ) литерал, состоящий из 0x01060000000000640000000000000000 плюс 16 байт, представляющих GUID.For SQL Database, this is a 32 byte (binary(32)) literal consisting of 0x01060000000000640000000000000000 plus 16 bytes representing a GUID. Например, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.For example, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

RemarksRemarks

Имя входаLogin

Имена входа базы данных SQLSQL Database Logins

Инструкция CREATE LOGIN должна быть единственной инструкцией в пакете.The CREATE LOGIN statement must be the only statement in a batch.

В некоторых методах подключения к базе данных SQL, например sqlcmd, необходимо добавить имя сервера базы данных SQL к имени входа в строке подключения с помощью нотации <login> @ <server> .In some methods of connecting to SQL Database, such as sqlcmd, you must append the SQL Database server name to the login name in the connection string by using the <login>@<server> notation. Например, если имя входа — login1, а полное имя сервера базы данных SQL —servername.database.windows.net, то параметр username в строке подключения должен иметь вид login1@servername.For example, if your login is login1 and the fully qualified name of the SQL Database server is servername.database.windows.net, the username parameter of the connection string should be login1@servername. Так как общая длина параметра username составляет 128 символов, длина имени login_name ограничена до 127 символов минус длина имени сервера.Because the total length of the username parameter is 128 characters, login_name is limited to 127 characters minus the length of the server name. В примере login_name может иметь длину не более 117 символов, поскольку servername имеет длину 10 символов.In the example, login_name can only be 117 characters long because servername is 10 characters.

В базе данных SQL для создания имени входа необходимо подключение к базе данных master.In SQL Database, you must be connected to the master database to create a login.

Правила SQL Server позволяют создать имя входа для проверки подлинности SQL Server в формате <loginname>@<servername>.SQL Server rules allow you create a SQL Server authentication login in the format <loginname>@<servername>. Если сервер База данных SQLSQL Database — myazureserver, а имя входа — **myemail@live.com** , то необходимо указать имя входа в виде **myemail@live.com@myazureserver** .If your База данных SQLSQL Database server is myazureserver and your login is **myemail@live.com**, then you must supply your login as **myemail@live.com@myazureserver**.

В базе данных SQL данные имени входа необходимы для проверки подлинности подключения, и правила брандмауэра на уровне сервера временно кэшируются в каждой базе данных.In SQL Database, login data required to authenticate a connection and server-level firewall rules is temporarily cached in each database. Этот кэш периодически обновляется.This cache is periodically refreshed. Чтобы принудительно обновить кэш проверки подлинности и убедиться в том, что база данных имеет последнюю версию таблицы имен входа, выполните инструкцию DBCC FLUSHAUTHCACHE.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

Дополнительные сведения об именах входа базы данных SQL см. в статье Управление базами данных и именами входа в Базу данных SQL Azure.For more information about SQL Database logins, see Managing Databases and Logins in Azure SQL Database.

РазрешенияPermissions

Создавать имена входа могут только имена входа участника уровня сервера (созданного процессом подготовки) или члены роли базы данных loginmanager в базе данных master.Only the server-level principal login (created by the provisioning process) or members of the loginmanager database role in the master database can create new logins. Дополнительные сведения см. в разделах Роли уровня сервера и ALTER SERVER ROLE.For more information, see Server-Level Roles and ALTER SERVER ROLE.

Имена входаLogins

  • Требуется разрешение ALTER ANY LOGIN на сервере или членство в предопределенной роли сервера securityadmin.Must have ALTER ANY LOGIN permission on the server or membership in the securityadmin fixed server role. Выполнять эту команду может только учетная запись Azure Active Directory (Azure AD) с разрешением ALTER ANY LOGIN на сервере или членством в разрешении securityadmin.Only Azure Active Directory (Azure AD) account with ALTER ANY LOGIN permission on the server or membership in the securityadmin permission can execute this command
  • Требуется членство в Azure AD в том же каталоге, который используется для сервера Базы данных SQL Azure.Must be a member of Azure AD within the same directory used for Azure SQL Database server

После создания имени входаAfter creating a login

Созданное имя входа может подключаться к базе данных SQL, но имеет разрешения только для роли public.After creating a login, the login can connect to SQL Database but only has the permissions granted to the public role. Попробуйте выполнить некоторые из приведенных ниже действий.Consider performing some of the following activities.

  • Чтобы подключиться к базе данных, создайте в этой базе данных пользователя для имени входа.To connect to a database, create a database user for the login in that database. Дополнительные сведения см. в статье об инструкции CREATE USER.For more information, see CREATE USER.
  • Чтобы предоставить разрешения пользователю базы данных, используйте инструкцию ALTER SERVER ROLE ... ADD MEMBER для добавления пользователя в одну из встроенных ролей базы данных или пользовательскую роль либо напрямую предоставьте пользователю разрешения с помощью инструкции GRANT.To grant permissions to a user in a database, use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the built-in database roles or a custom role, or grant permissions to the user directly using the GRANT statement. Дополнительные сведения см. в разделах Пользователи без прав администратора, Дополнительные административные роли на уровне сервера, ALTER SERVER ROLE и GRANT.For more information, see Non-administrator Roles, Additional server-level administrative roles, ALTER SERVER ROLE, and GRANT statement.
  • Чтобы предоставить разрешения уровня сервера, создайте пользователя базы данных в базе данных master и с помощью инструкции ALTER SERVER ROLE ... ADD MEMBER добавьте пользователя в одну из административных ролей сервера.To grant server-wide permissions, create a database user in the master database and use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the administrative server roles. Дополнительные сведения см. в разделах Роли уровня сервера, ALTER SERVER ROLE и Роли сервера.For more information, see Server-Level Roles and ALTER SERVER ROLE, and Server roles.
  • Воспользуйтесь инструкцией GRANT, чтобы предоставить разрешения уровня сервера новому имени входа или роли, содержащей это имя входа.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Дополнительные сведения см. в статье GRANT.For more information, see GRANT.

ПримерыExamples

A.A. Создание имени входа с паролемCreating a login with a password

В следующем примере создается имя входа для конкретного пользователя и назначается пароль.The following example creates a login for a particular user and assigns a password.

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

Б.B. Создание имени входа на основе SIDCreating a login from a SID

В следующем примере создается имя входа с проверкой подлинности SQL Server и определяется его SID.The following example first creates a SQL Server authentication login and determines the SID of the login.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Наш запрос возвращает идентификатор SID 0x241C11948AEEB749B0D22646DB1A19F2.My query returns 0x241C11948AEEB749B0D22646DB1A19F2 as the SID. Ваш запрос вернет другое значение.Your query will return a different value. Следующие выражения удаляют имя входа, а затем повторно создают имя входа.The following statements delete the login, and then recreate the login. Используйте SID из предыдущего запроса.Use the SID from your previous query.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

См. также:See Also

SQL ServerSQL Server Отдельная база данных/эластичный пул Базы данных SQL
SQL Database
single database/elastic pool
* Управляемый экземпляр Базы данных SQL
*
* SQL Database
managed instance *
Хранилище данных
SQL
SQL Data
Warehouse
Analytics Platform
System (PDW)
Analytics Platform
System (PDW)

 

Управляемый экземпляр Базы данных SQL AzureAzure SQL Database managed instance

СинтаксисSyntax

-- Syntax for Azure SQL Database managed instance
CREATE LOGIN login_name [FROM EXTERNAL PROVIDER] { WITH <option_list> [,..]}

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

АргументыArguments

login_name — учетные данные, которые при использовании вместе с предложением FROM EXTERNAL PROVIDER указывают субъект Azure Active Directory (AD). Субъектом может быть пользователь, группа или приложение Azure AD.login_name When used with the FROM EXTERNAL PROVIDER clause, the login specifies the Azure Active Directory (AD) Principal, which is an Azure AD user, group, or application. В противном случае оно представляет созданное имя входа SQL.Otherwise, the login represents the name of the SQL login that was created.

FROM EXTERNAL PROVIDERFROM EXTERNAL PROVIDER
Указывает, что имя входа предназначено для проверки подлинности Azure AD.Specifies that the login is for Azure AD Authentication.

PASSWORD = 'password' — указывает пароль для создаваемого имени входа SQL.PASSWORD = 'password' Specifies the password for the SQL login that is being created. Выбирайте надежные пароли.Use a strong password. Дополнительные сведения см. в статьях Надежные пароли и Политика паролей.For more information, see Strong Passwords and Password Policy. Начиная с версии SQL Server 2012 (11.x)SQL Server 2012 (11.x) сохраненные сведения о пароле вычисляются с помощью SHA-512 соленого пароля.Beginning with SQL Server 2012 (11.x)SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

В паролях учитывается регистр символов.Passwords are case-sensitive. Пароли всегда должны содержать не менее восьми символов и не могут содержать более 128 символов.Passwords should always be at least eight characters long, and cannot exceed 128 characters. Пароли могут содержать символы a-z, A-Z, 0-9 и большинство неалфавитных символов.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Пароли не могут содержать одиночные кавычки или login_name.Passwords cannot contain single quotes, or the login_name.

SID = sid — используется для повторного создания имени входа.SID = sid Used to recreate a login. Применяется только для имен входа с проверкой подлинности SQL Server.Applies to SQL Server authentication logins only. Указывает идентификатор SID нового имени входа проверки подлинности SQL Server.Specifies the SID of the new SQL Server authentication login. Если этот параметр не используется, SQL Server назначает идентификатор SID автоматически.If this option is not used, SQL Server automatically assigns a SID. Структура идентификатора SID зависит от версии SQL Server.The SID structure depends on the SQL Server version. Для базы данных SQL это 32-байтовый (binary(32) ) литерал, состоящий из 0x01060000000000640000000000000000 плюс 16 байт, представляющих GUID.For SQL Database, this is a 32 byte (binary(32)) literal consisting of 0x01060000000000640000000000000000 plus 16 bytes representing a GUID. Например, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.For example, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

RemarksRemarks

  • В паролях учитывается регистр символов.Passwords are case-sensitive.

  • Появился новый синтаксис для создания субъектов уровня сервера, сопоставленных с учетными записями Azure AD (FROM EXTERNAL PROVIDER)New syntax is introduced for the creation of server-level principals mapped to Azure AD accounts (FROM EXTERNAL PROVIDER)

  • Когда указывается FROM EXTERNAL PROVIDER:When FROM EXTERNAL PROVIDER is specified:

    • значение login_name должно представлять имеющуюся учетную запись Azure AD (пользователя, группу или приложение), доступную в Azure AD для текущего управляемого экземпляра SQL Azure.The login_name must represent an existing Azure AD account (user, group, or application) that is accessible in Azure AD by the current Azure SQL managed instance. Для субъектов Azure AD действуют такие требования синтаксиса CREATE LOGIN:For Azure AD principals, the CREATE LOGIN syntax requires:
      • имя участника-пользователя (UserPrincipalName) объекта Azure AD для пользователей Azure AD;UserPrincipalName of the Azure AD object for Azure AD Users.
      • отображаемое имя (DisplayName) объекта Azure AD для групп и приложений Azure AD.DisplayName of Azure AD object for Azure AD Groups and Azure AD Applications.
    • Этот параметр невозможно использовать совместно с параметром PASSWORD.The PASSWORD option cannot be used.
  • По умолчанию, когда предложение FROM EXTERNAL PROVIDER опущено, создается регулярное имя входа SQL.By default, when the FROM EXTERNAL PROVIDER clause is omitted, a regular SQL login is created.

  • Имена для входа Azure AD отображаются в sys.server_principals со значением столбца типа, равным E, и type_desc, равным EXTERNAL_LOGIN для имен входа, сопоставленных пользователям Azure AD, или значением столбца типа X и значением type_desc EXTERNAL_GROUP для имен входа, которые сопоставляются с группами Azure AD.Azure AD logins are visible in sys.server_principals, with type column value set to E and type_desc set to EXTERNAL_LOGIN for logins mapped to Azure AD users, or type column value set to X and type_desc value set to EXTERNAL_GROUP for logins mapped to Azure AD groups.

  • Скрипт для передачи имен входа см. в разделе Способы передачи имен входа и паролей между экземплярами SQL Server 2005 и SQL Server 2008.For a script to transfer logins, see How to transfer the logins and the passwords between instances of SQL Server 2005 and SQL Server 2008.

  • При создании имени входа оно автоматически включается, и ему предоставляется разрешение CONNECT SQL уровня сервера.Creating a login automatically enables the new login and grants the login the server level CONNECT SQL permission.

Имена входа и разрешенияLogins and Permissions

Создавать имена входа могут только имена входа участника уровня сервера (созданного процессом подготовки) или члены роли базы данных securityadmin или sysadmin в базе данных master.Only the server-level principal login (created by the provisioning process) or members of the securityadmin or sysadmin database role in the master database can create new logins. Дополнительные сведения см. в разделах Роли уровня сервера и ALTER SERVER ROLE.For more information, see Server-Level Roles and ALTER SERVER ROLE.

Стандартные разрешения, предоставляемые по умолчанию только что созданному имени входа Azure AD в базе данных master: CONNECT SQL и VIEW ANY DATABASE.By default, the standard permission granted to a newly created Azure AD login in master is: CONNECT SQL and VIEW ANY DATABASE.

Имена входа управляемого экземпляра Базы данных SQLSQL Database managed instance Logins

  • Требуется разрешение ALTER ANY LOGIN на сервере или членство в предопределенной роли сервера securityadmin или sysadmin.Must have ALTER ANY LOGIN permission on the server or membership in the one of the fixed server roles securityadmin or sysadmin. Выполнять команду создания может только учетная запись Azure Active Directory (Azure AD) с разрешением ALTER ANY LOGIN на сервере или членством в одной из этих ролей.Only an Azure Active Directory (Azure AD) account with ALTER ANY LOGIN permission on the server or membership in one of those roles can execute the create command.
  • Если имя входа является субъектом SQL, только имена входа, которые относятся к роли sysadmin, могут использовать команду создания, чтобы создавать имена входа для учетной записи Azure AD.If the login is a SQL Principal, only logins that are part of the sysadmin role can use the create command to create logins for an Azure AD account.
  • Требуется членство в Azure AD в том же каталоге, который используется для управляемого экземпляра SQL Azure.Must be a member of Azure AD within the same directory used for Azure SQL managed instance.

После создания имени входаAfter creating a login

Примечание

Функция администратора Azure AD для управляемого экземпляра после создания изменилась.The Azure AD admin for managed instance functionality after creation has changed. Дополнительные сведения см. в статье Новые возможности администратора Azure AD для управляемого экземпляра.For more information, see New Azure AD admin functionality for MI.

Созданное имя входа может подключаться к управляемому экземпляру Базы данных SQL, но c разрешениями только для роли public.After creating a login, the login can connect to a SQL Database managed instance, but only has the permissions granted to the public role. Попробуйте выполнить некоторые из приведенных ниже действий.Consider performing some of the following activities.

  • Чтобы создать пользователя Azure AD по имени входа Azure AD, см. раздел CREATE USER.To create an Azure AD user from an Azure AD login, see CREATE USER.
  • Чтобы предоставить разрешения пользователю базы данных, используйте инструкцию ALTER SERVER ROLE ... ADD MEMBER для добавления пользователя в одну из встроенных ролей базы данных или пользовательскую роль либо напрямую предоставьте пользователю разрешения с помощью инструкции GRANT.To grant permissions to a user in a database, use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the built-in database roles or a custom role, or grant permissions to the user directly using the GRANT statement. Дополнительные сведения см. в разделах Пользователи без прав администратора, Дополнительные административные роли на уровне сервера, ALTER SERVER ROLE и GRANT.For more information, see Non-administrator Roles, Additional server-level administrative roles, ALTER SERVER ROLE, and GRANT statement.
  • Чтобы предоставить разрешения уровня сервера, создайте пользователя базы данных в базе данных master и с помощью инструкции ALTER SERVER ROLE ... ADD MEMBER добавьте пользователя в одну из административных ролей сервера.To grant server-wide permissions, create a database user in the master database and use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the administrative server roles. Дополнительные сведения см. в разделах Роли уровня сервера, ALTER SERVER ROLE и Роли сервера.For more information, see Server-Level Roles and ALTER SERVER ROLE, and Server roles.
    • Используйте следующую команду, чтобы добавить роль sysadmin для имени входа Azure AD: ALTER SERVER ROLE sysadmin ADD MEMBER [AzureAD_Login_name]Use the following command to add the sysadmin role to an Azure AD login: ALTER SERVER ROLE sysadmin ADD MEMBER [AzureAD_Login_name]
  • Воспользуйтесь инструкцией GRANT, чтобы предоставить разрешения уровня сервера новому имени входа или роли, содержащей это имя входа.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Дополнительные сведения см. в статье GRANT.For more information, see GRANT.

ОграниченияLimitations

  • Сопоставление имени входа Azure AD с группой Azure AD в качестве владельца базы данных не поддерживается.Setting an Azure AD login mapped to an Azure AD group as the database owner is not supported.
  • Олицетворение участников уровня сервера Azure AD с помощью других субъектов Azure AD поддерживается, например с помощью предложения EXECUTE AS.Impersonation of Azure AD server-level principals using other Azure AD principals is supported, such as the EXECUTE AS clause.
  • Только субъекты уровня сервера SQL (имена входа), которые относятся к роли sysadmin, могут выполнять следующие операции, предназначенные для субъектов Azure AD:Only SQL server-level principals (logins) that are part of the sysadmin role can execute the following operations targeting Azure AD principals:
    • EXECUTE AS USEREXECUTE AS USER
    • EXECUTE AS LOGINEXECUTE AS LOGIN
  • Внешних (гостевых) пользователей, импортированных из другого каталога Azure AD, нельзя настроить непосредственно в качестве администратора Azure AD для управляемого экземпляра.External (guest) users imported from another Azure AD directory cannot be directly configured as an Azure AD admin for managed instance. Вместо этого присоедините внешнего пользователя к группе с поддержкой безопасности Azure AD и настройте группу в качестве администратора экземпляра.Instead, join external user to an Azure AD security-enabled group and configure the group as the instance administrator.

ПримерыExamples

A.A. Создание имени входа с паролемCreating a login with a password

В следующем примере создается имя входа для конкретного пользователя и назначается пароль.The following example creates a login for a particular user and assigns a password.

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

Б.B. Создание имени входа на основе SIDCreating a login from a SID

В следующем примере создается имя входа с проверкой подлинности SQL Server и определяется его SID.The following example first creates a SQL Server authentication login and determines the SID of the login.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Наш запрос возвращает идентификатор SID 0x241C11948AEEB749B0D22646DB1A19F2.My query returns 0x241C11948AEEB749B0D22646DB1A19F2 as the SID. Ваш запрос вернет другое значение.Your query will return a different value. Следующие выражения удаляют имя входа, а затем повторно создают имя входа.The following statements delete the login, and then recreate the login. Используйте SID из предыдущего запроса.Use the SID from your previous query.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

В.C. Создание имени входа для локальной учетной записи Azure ADCreating a login for a local Azure AD account

В следующем примере создается имя входа для учетной записи Azure AD joe@myaad.onmicrosoft.com, существующей в Azure AD myaad.The following example creates a login for the Azure AD account joe@myaad.onmicrosoft.com that exists in the Azure AD of myaad.

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

Г.D. Создание имени входа для федеративной учетной записи Azure ADCreating a login for a federated Azure AD account

В следующем примере создается имя входа для федеративной учетной записи Azure AD bob@contoso.com, существующей в Azure AD contoso.The following example creates a login for a federated Azure AD account bob@contoso.com that exists in the Azure AD called contoso. Пользователь Боб также может быть гостем.User bob can also be a guest user.

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

Д.E. Создание имени входа для группы Azure ADCreating a login for an Azure AD group

В следующем примере создается имя входа для группы Azure AD mygroup, существующей в Azure AD myaad.The following example creates a login for the Azure AD group mygroup that exists in the Azure AD of myaad

CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO

Е.F. Создание имени входа для приложения Azure ADCreating a login for an Azure AD application

В следующем примере создается имя входа для приложения Azure AD myapp, существующего в Azure AD myaad.The following example creates a login for the Azure AD application myapp that exists in the Azure AD of myaad

CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER

Ж.G. Проверка новых имен входаCheck newly added logins

Чтобы проверить вновь добавленное имя входа, выполните следующую команду T-SQL:To check the newly added login, execute the following T-SQL command:

SELECT *
FROM sys.server_principals;
GO

См. также:See Also

SQL ServerSQL Server Отдельная база данных/эластичный пул Базы данных SQL
SQL Database
single database/elastic pool
Управляемый экземпляр Базы данных SQL
SQL Database
managed instance
* Хранилище данных
SQL *
* SQL Data
Warehouse *
Analytics Platform
System (PDW)
Analytics Platform
System (PDW)

 

Хранилище данных SQL AzureAzure SQL Data Warehouse

СинтаксисSyntax

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

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

АргументыArguments

login_name — указывает имя пользователя для создаваемого имени входа.login_name Specifies the name of the login that is created. База данных SQL Azure поддерживает только имена входа SQL.Azure SQL Database supports only SQL logins.

PASSWORD =' password* '  — указывает пароль для создаваемого имени входа SQL.PASSWORD =' password*' Specifies the password for the SQL login that is being created. Выбирайте надежные пароли.Use a strong password. Дополнительные сведения см. в статьях Надежные пароли и Политика паролей.For more information, see Strong Passwords and Password Policy. Начиная с версии SQL Server 2012 (11.x)SQL Server 2012 (11.x) сохраненные сведения о пароле вычисляются с помощью SHA-512 соленого пароля.Beginning with SQL Server 2012 (11.x)SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

В паролях учитывается регистр символов.Passwords are case-sensitive. Пароли всегда должны содержать не менее восьми символов и не могут содержать более 128 символов.Passwords should always be at least eight characters long, and cannot exceed 128 characters. Пароли могут содержать символы a-z, A-Z, 0-9 и большинство неалфавитных символов.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Пароли не могут содержать одиночные кавычки или login_name.Passwords cannot contain single quotes, or the login_name.

SID = sid — используется для повторного создания имени входа.SID = sid Used to recreate a login. Применяется только к именам входа проверки подлинности SQL Server, но не относится к именам входа проверки подлинности Windows.Applies to SQL Server authentication logins only, not Windows authentication logins. Указывает идентификатор SID нового имени входа проверки подлинности SQL Server.Specifies the SID of the new SQL Server authentication login. Если этот параметр не используется, SQL Server назначает идентификатор SID автоматически.If this option is not used, SQL Server automatically assigns a SID. Структура идентификатора SID зависит от версии SQL Server.The SID structure depends on the SQL Server version. Для хранилища данных SQL это 32-байтовый (binary(32) ) литерал, состоящий из 0x01060000000000640000000000000000 плюс 16 байт, представляющих GUID.For SQL Data Warehouse, this is a 32 byte (binary(32)) literal consisting of 0x01060000000000640000000000000000 plus 16 bytes representing a GUID. Например, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.For example, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

RemarksRemarks

Имена входаLogins

Инструкция CREATE LOGIN должна быть единственной инструкцией в пакете.The CREATE LOGIN statement must be the only statement in a batch.

В некоторых методах подключения к хранилищу данных SQL, например sqlcmd, необходимо добавить имя сервера хранилища данных SQL к имени входа в строке подключения с помощью нотации <login> @ <server> .In some methods of connecting to SQL Data Warehouse, such as sqlcmd, you must append the SQL Data Warehouse server name to the login name in the connection string by using the <login>@<server> notation. Например, если имя входа — login1, а полное имя сервера хранилища данных SQL —servername.database.windows.net, то параметр username в строке подключения должен иметь вид login1@servername.For example, if your login is login1 and the fully qualified name of the SQL Data Warehouse server is servername.database.windows.net, the username parameter of the connection string should be login1@servername. Так как общая длина параметра username составляет 128 символов, длина имени login_name ограничена до 127 символов минус длина имени сервера.Because the total length of the username parameter is 128 characters, login_name is limited to 127 characters minus the length of the server name. В примере login_name может иметь длину не более 117 символов, поскольку servername имеет длину 10 символов.In the example, login_name can only be 117 characters long because servername is 10 characters.

В хранилище данных SQL для создания имени входа необходимо подключение к базе данных master.In SQL Data Warehouse, you must be connected to the master database to create a login.

Правила SQL Server позволяют создать имя входа для проверки подлинности SQL Server в формате <loginname>@<servername>.SQL Server rules allow you create a SQL Server authentication login in the format <loginname>@<servername>. Если сервер База данных SQLSQL Database — myazureserver, а имя входа — **myemail@live.com** , то необходимо указать имя входа в виде **myemail@live.com@myazureserver** .If your База данных SQLSQL Database server is myazureserver and your login is **myemail@live.com**, then you must supply your login as **myemail@live.com@myazureserver**.

В хранилище данных SQL данные имени входа необходимы для проверки подлинности подключения, и правила брандмауэра на уровне сервера временно кэшируются в каждой базе данных.In SQL Data Warehouse, login data required to authenticate a connection and server-level firewall rules is temporarily cached in each database. Этот кэш периодически обновляется.This cache is periodically refreshed. Чтобы принудительно обновить кэш проверки подлинности и убедиться в том, что база данных имеет последнюю версию таблицы имен входа, выполните инструкцию DBCC FLUSHAUTHCACHE.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

Дополнительные сведения об именах входа для Хранилища данных SQL см. в статье Управление базами данных и именами входа в Базу данных SQL Azure.For more information about SQL Data Warehouse logins, see Managing Databases and Logins in Azure SQL Database.

РазрешенияPermissions

Создавать имена входа могут только имена входа участника уровня сервера (созданного процессом подготовки) или члены роли базы данных loginmanager в базе данных master.Only the server-level principal login (created by the provisioning process) or members of the loginmanager database role in the master database can create new logins. Дополнительные сведения см. в разделах Роли уровня сервера и ALTER SERVER ROLE.For more information, see Server-Level Roles and ALTER SERVER ROLE.

После создания имени входаAfter creating a login

Созданное имя входа может подключаться к хранилищу данных SQL, но имеет разрешения только для роли public.After creating a login, the login can connect to SQL Data Warehouse but only has the permissions granted to the public role. Попробуйте выполнить некоторые из приведенных ниже действий.Consider performing some of the following activities.

  • Чтобы подключиться к базе данных, создайте пользователя базы данных для имени входа.To connect to a database, create a database user for the login. Дополнительные сведения см. в статье об инструкции CREATE USER.For more information, see CREATE USER.

  • Чтобы предоставить разрешения пользователю базы данных, используйте инструкцию ALTER SERVER ROLE ... ADD MEMBER для добавления пользователя в одну из встроенных ролей базы данных или пользовательскую роль либо напрямую предоставьте пользователю разрешения с помощью инструкции GRANT.To grant permissions to a user in a database, use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the built-in database roles or a custom role, or grant permissions to the user directly using the GRANT statement. Дополнительные сведения см. в разделах Пользователи без прав администратора, Дополнительные административные роли на уровне сервера, ALTER SERVER ROLE и GRANT.For more information, see Non-administrator Roles, Additional server-level administrative roles, ALTER SERVER ROLE, and GRANT statement.

  • Чтобы предоставить разрешения уровня сервера, создайте пользователя базы данных в базе данных master и с помощью инструкции ALTER SERVER ROLE ... ADD MEMBER добавьте пользователя в одну из административных ролей сервера.To grant server-wide permissions, create a database user in the master database and use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the administrative server roles. Дополнительные сведения см. в разделах Роли уровня сервера, ALTER SERVER ROLE и Роли сервера.For more information, see Server-Level Roles and ALTER SERVER ROLE, and Server roles.

  • Воспользуйтесь инструкцией GRANT, чтобы предоставить разрешения уровня сервера новому имени входа или роли, содержащей это имя входа.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Дополнительные сведения см. в статье GRANT.For more information, see GRANT.

ПримерыExamples

A.A. Создание имени входа с паролемCreating a login with a password

В следующем примере создается имя входа для конкретного пользователя и назначается пароль.The following example creates a login for a particular user and assigns a password.

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

Б.B. Создание имени входа на основе SIDCreating a login from a SID

В следующем примере создается имя входа с проверкой подлинности SQL Server и определяется его SID.The following example first creates a SQL Server authentication login and determines the SID of the login.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Наш запрос возвращает идентификатор SID 0x241C11948AEEB749B0D22646DB1A19F2.My query returns 0x241C11948AEEB749B0D22646DB1A19F2 as the SID. Ваш запрос вернет другое значение.Your query will return a different value. Следующие выражения удаляют имя входа, а затем повторно создают имя входа.The following statements delete the login, and then recreate the login. Используйте SID из предыдущего запроса.Use the SID from your previous query.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

См. также:See Also

SQL ServerSQL Server Отдельная база данных/эластичный пул Базы данных SQL
SQL Database
single database/elastic pool
Управляемый экземпляр Базы данных SQL
SQL Database
managed instance
Хранилище данных
SQL
SQL Data
Warehouse
* Analytics
Platform System (PDW) *
* Analytics
Platform System (PDW) *

 

Система платформы аналитикиAnalytics Platform System

СинтаксисSyntax

-- 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}

АргументыArguments

login_name — указывает имя пользователя для создаваемого имени входа.login_name Specifies the name of the login that is created. Имена входа бывают четырех типов: имена входа SQL Server, имена входа Windows, имена входа, сопоставленные с помощью сертификата, а также имена входа, сопоставленные с помощью асимметричного ключа.There are four types of logins: SQL Server logins, Windows logins, certificate-mapped logins, and asymmetric key-mapped logins. При создании имен входа, сопоставленных с учетной записью домена Windows, необходимо использовать имя входа версии, более ранней, чем Windows 2000, с форматом [<domainName>\<login_name>].When you are creating logins that are mapped from a Windows domain account, you must use the pre-Windows 2000 user logon name in the format [<domainName>\<login_name>]. Нельзя использовать имя участника-пользователя в формате login_name@DomainName.You cannot use a UPN in the format login_name@DomainName. См. приведенный ниже пример Г.For an example, see example D later in this article. Имена входа проверки подлинности имеют тип sysname, должны соответствовать правилам для идентификаторов и не могут содержать символ " \ ".Authentication logins are type sysname and must conform to the rules for Identifiers and cannot contain a '\'. Имена входа Windows могут содержать символы « \ ».Windows logins can contain a '\'. Имена входа, основанные на пользователях Active Directory, могут иметь не более 21 символа в длину.Logins based on Active Directory users, are limited to names of fewer than 21 characters.

PASSWORD =' password' Применяется только к именам входа SQL Server.PASSWORD ='password' Applies to SQL Server logins only. Задает пароль для создаваемого имени входа.Specifies the password for the login that is being created. Выбирайте надежные пароли.Use a strong password. Дополнительные сведения см. в статьях Надежные пароли и Политика паролей.For more information, see Strong Passwords and Password Policy. Начиная с SQL Server 2012 (11.x), сохраненные сведения о пароле вычисляются с помощью SHA-512 "соленого" пароля.Beginning with SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

В паролях учитывается регистр символов.Passwords are case-sensitive. Пароли всегда должны содержать не менее восьми символов и не могут содержать более 128 символов.Passwords should always be at least eight characters long, and cannot exceed 128 characters. Пароли могут содержать символы a-z, A-Z, 0-9 и большинство неалфавитных символов.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Пароли не могут содержать одиночные кавычки или login_name.Passwords cannot contain single quotes, or the login_name.

MUST_CHANGE применяется только к именам входа SQL Server.MUST_CHANGE Applies to SQL Server logins only. Если этот параметр задан, то при первом использовании нового имени входа SQL Server запрашивает новый пароль.If this option is included, SQL Server prompts the user for a new password the first time the new login is used.

CHECK_EXPIRATION = { ON | OFF } — применяется только к именам входа SQL Server.CHECK_EXPIRATION = { ON | OFF } Applies to SQL Server logins only. Указывает, должна ли политика истечения срока действия паролей принудительно применяться к этому имени входа.Specifies whether password expiration policy should be enforced on this login. Значение по умолчанию — OFF.The default value is OFF.

CHECK_POLICY = { ON | OFF } — применяется только к именам входа SQL Server.CHECK_POLICY = { ON | OFF } Applies to SQL Server logins only. Указывает, что политики паролей Windows компьютера, на котором работает SQL Server, должны принудительно применяться к этому имени входа.Specifies that the Windows password policies of the computer on which SQL Server is running should be enforced on this login. Значение по умолчанию — ON.The default value is ON.

Если политика Windows требует надежных паролей, то пароль должен обладать по крайней мере тремя из следующих четырех качеств:If the Windows policy requires strong passwords, passwords must contain at least three of the following four characteristics:

  • Наличие символов верхнего регистра (A-Z).An uppercase character (A-Z).
  • Наличие строчных символов (a-z).A lowercase character (a-z).
  • Числа (0-9).A digit (0-9).
  • Один из неалфавитных символов, например пробел, _, @, *, ^, %! #, $ или &.One of the non-alphanumeric characters, such as a space, _, @, *, ^, %, !, $, #, or &.

WINDOWS — указывает, что имя входа сопоставлено с именем входа Windows.WINDOWS Specifies that the login be mapped to a Windows login.

RemarksRemarks

  • В паролях учитывается регистр символов.Passwords are case-sensitive.
  • Если задан параметр MUST_CHANGE, то параметры CHECK_EXPIRATION и CHECK_POLICY должны иметь значение ON.If MUST_CHANGE is specified, CHECK_EXPIRATION and CHECK_POLICY must be set to ON. В противном случае выполнение инструкции приведет к ошибке.Otherwise, the statement will fail.
  • Сочетание CHECK_POLICY = OFF и CHECK_EXPIRATION = ON не поддерживается.A combination of CHECK_POLICY = OFF and CHECK_EXPIRATION = ON is not supported.
  • Если значение CHECK_POLICY равно OFF, то lockout_time сбрасывается и параметру CHECK_EXPIRATION также присваивается значение OFF.When CHECK_POLICY is set to OFF, lockout_time is reset and CHECK_EXPIRATION is set to OFF.

Важно!

Параметры CHECK_EXPIRATION и CHECK_POLICY принудительно применяются только в Windows Server 2003 и более поздних версиях.CHECK_EXPIRATION and CHECK_POLICY are only enforced on Windows Server 2003 and later. Дополнительные сведения см. в разделе Политика паролей.For more information, see Password Policy.

РазрешенияPermissions

Создавать имена входа могут только пользователи с разрешением ALTER ANY LOGIN на сервере или имеющие членство в предопределенной роли сервера securityadmin.Only users with ALTER ANY LOGIN permission on the server or membership in the securityadmin fixed server role can create logins. Дополнительные сведения см. в разделах Роли уровня сервера и ALTER SERVER ROLE.For more information, see Server-Level Roles and ALTER SERVER ROLE.

После создания имени входаAfter creating a login

Созданное имя входа может подключаться к хранилищу данных SQL, но имеет разрешения только для роли public.After creating a login, the login can connect to SQL Data Warehouse, but only has the permissions granted to the public role. Попробуйте выполнить некоторые из приведенных ниже действий.Consider performing some of the following activities.

  • Чтобы подключиться к базе данных, создайте пользователя базы данных для имени входа.To connect to a database, create a database user for the login. Дополнительные сведения см. в статье об инструкции CREATE USER.For more information, see CREATE USER.
  • Создайте определяемую пользователем роль сервера с помощью CREATE SERVER ROLE.Create a user-defined server role by using CREATE SERVER ROLE. Воспользуйтесь инструкциями ALTER SERVER ROLE ... ADD MEMBER для добавления нового имени входа к определяемой пользователем роли сервера.Use ALTER SERVER ROLE ... ADD MEMBER to add the new login to the user-defined server role. Дополнительные сведения см. в статьях CREATE SERVER ROLE и ALTER SERVER ROLE.For more information, see CREATE SERVER ROLE and ALTER SERVER ROLE.
  • Воспользуйтесь процедурой sp_addsrvrolemember для добавления имени входа к предопределенной роли сервера.Use sp_addsrvrolemember to add the login to a fixed server role. Дополнительные сведения см. в разделе Роли уровня сервера и sp_addsrvrolemember.For more information, see Server-Level Roles and sp_addsrvrolemember.
  • Воспользуйтесь инструкцией GRANT, чтобы предоставить разрешения уровня сервера новому имени входа или роли, содержащей это имя входа.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Дополнительные сведения см. в статье GRANT.For more information, see GRANT.

ПримерыExamples

Ж.G. Создание имени входа для проверки подлинности SQL Server с паролемCreating a SQL Server authentication login with a password

В следующем примере создается имя входа Mary7 с паролем A2c3456.The following example creates the login Mary7 with password A2c3456.

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

З.H. Использование параметровUsing Options

В следующем примере создается имя входа Mary8 с паролем и дополнительными аргументами.The following example creates the login Mary8 with password and some of the optional arguments.

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

И.I. Создание имени входа на основе учетной записи домена WindowsCreating a login from a Windows domain account

В следующем примере имя входа создается на основе учетной записи домена Windows Mary в домене Contoso.The following example creates a login from a Windows domain account named Mary in the Contoso domain.

CREATE LOGIN [Contoso\Mary] FROM WINDOWS;
GO

См. также:See Also