SQL Server СОЗДАТЬ ВХОД

В этом руководстве вы узнаете, как использовать оператор SQL Server CREATE LOGIN для создания имени входа.

Введение в оператор SQL Server CREATE LOGIN

Перед созданием пользователя, который будет иметь доступ к базам данных на 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.
Мирослав С.

Автор статей, ИБ-специалист