В этом руководстве вы узнаете, как использовать оператор SQL Server CREATE LOGIN для создания имени входа.
Введение в оператор SQL Server CREATE LOGIN
Перед созданием пользователя, который будет иметь доступ к базам данных на SQL Server, необходимо выполнить следующие действия:
- Сначала создайте логин для SQL Server.
- Во-вторых, создайте пользователя и сопоставьте его с логином.
Для создания логина используется оператор CREATE LOGIN. Ниже показан базовый синтаксис оператора CREATE LOGIN:
CREATE LOGIN login_name WITH PASSWORD = password;
В этом синтаксисе:
- Сначала укажите имя пользователя после ключевых слов CREATE LOGIN.
- Во-вторых, укажите пароль в предложении WITH PASSWORD.
Пароль чувствителен к регистру. Он должен содержать от 8 до 128 символов и может включать az, AZ, 0-9 и большинство небуквенно-цифровых символов.
Обратите внимание, что пароль не может содержать имя_пользователя или одинарные кавычки.
Внутри SQL Server хэш пароля хранится с использованием SHA-512. При миграции базы данных вы можете повторно использовать хэшированные пароли логинов из старой базы данных в новой базе данных.
Чтобы создать логин с хешированным паролем, укажите хешированный пароль с ключевым словом HASHED следующим образом:
CREATE LOGIN login_name WITH PASSWORD = hashed_password HASHED;
В целях безопасности следует использовать хешированный пароль только для миграции базы данных.
Пример оператора SQL Server CREATE LOGIN
Следующий оператор создает новый логин с именем bob и паролем Ebe2di68.:
CREATE LOGIN bob WITH PASSWORD='Ebe2di68.';
Пользователь bob может войти в систему SQL Server и просмотреть имена баз данных, но не может получить доступ ни к одной базе данных.
Чтобы просмотреть все логины экземпляра SQL Server, используйте следующий запрос:
SELECT sp.name AS login, sp.type_desc AS login_type, CASE WHEN sp.is_disabled = 1 THEN 'Disabled' ELSE 'Enabled' END AS status, sl.password_hash, sp.create_date, sp.modify_date FROM sys.server_principals sp LEFT JOIN sys.sql_logins sl ON sp.principal_id = sl.principal_id WHERE sp.type NOT IN('G', 'R') ORDER BY create_date DESC;
Выход:
Параметры оператора SQL Server CREATE LOGIN
Давайте обсудим дополнительные параметры оператора CREATE LOGIN.
Опция CHECK_POLICY
Параметр CHECK_POLICY позволяет указать, что политики паролей Windows сервера, на котором запущен SQL Server, должны применяться к логину. CHECK_POLICY может быть ON или OFF. Его значение по умолчанию — ON.
Ниже показан оператор CREATE LOGIN с опцией CHECK_POLICY:
CREATE LOGIN login_name WITH PASSWORD = password, CHECK_POLICY = {ON | OFF};
Обратите внимание, что параметр CHECK_POLICY применяется только к входам в SQL Server.
Опция CHECK_EXPIRATION
Параметр CHECK_EXPIRATION определяет, должна ли политика истечения срока действия пароля применяться для этого входа. CHECK_EXPIRATION может быть ON или OFF. Значение по умолчанию — OFF.
Ниже показан оператор CREATE LOGIN с опцией CHECK_EXPIRATION:
CREATE LOGIN login_name WITH PASSWORD = password, CHECK_EXPIRATION = {ON | OFF};
Обратите внимание, что параметр CHECK_EXPIRATION применяется только к входам в SQL Server.
Опция MUST_CHANGE
Чтобы запросить у пользователей новый пароль при первом входе в систему, используйте опцию MUST_CHANGE. При использовании опции MUST_CHANGE CHECK_POLICY и CHECK_EXPIRATION должны быть включены. В противном случае оператор не будет выполнен.
CREATE LOGIN login_name WITH PASSWORD = password MUST_CHANGE, CHECK_POLICY=ON, CHECK_EXPIRATION=ON;
Например:
CREATE LOGIN alice WITH PASSWORD = 'UcxSj12.' MUST_CHANGE, CHECK_POLICY=ON, CHECK_EXPRIATION=ON;
В этом примере SQL Server запросит у пользователя, использующего имя пользователя alice, новый пароль при первом входе пользователя в систему.
Обратите внимание, что параметр MUST_CHANGE применяется только к входам в SQL Server.
Создание входа из учетной записи домена Windows
Чтобы создать вход из учетной записи домена Windows, используйте следующую инструкцию:
CREATE LOGIN domain_name\login_name FROM WINDOWS;
В следующем примере создается вход из учетной записи домена Windows sqlservertutorial\peter:
CREATE LOGIN sqlservertutorial\peter FROM WINDOWS;
Обратите внимание, что учетная запись домена Windows sqlservertutorial\peter должна существовать.
Краткое содержание
- Используйте оператор CREATE LOGIN для создания имени входа для SQL Server.