1. Главная страница » Компьютеры

Create login with password

Автор: | 16.12.2019

Создание логинов в SQL Server 2005, CREATE LOGIN, парольные политики, свойства логинов

Логины любого типа создаются одинаково:

q при помощи графического интерфейса — из окна Login — New (Новый логин). Это окно открывается с помощью команды New Login контекстного меню контейнера Security | Logins (Безопасность | Логины) в Object Explorer в SQL Server Management Studio ;

q из скрипта — при помощи команды CREATE LOGIN . Хранимая процедура sp_ addlogin , которая использовалась для этой цели в предыдущих версиях SQL Server , оставлена только для обеспечения обратной совместимости и к использованию не рекомендуется.

Например, команда на создание логина SQL Server с именем User1 и паролем P@ssw0rd (для всех остальных параметров будут приняты значения по умолчанию) может выглядеть так:

CREATE LOGIN User1 WITH PASSWORD = ‘P@ssw0rd’;

Если вы создаете логин Windows , вам потребуется выбрать соответствующую учетную запись Windows (доменную или локальную). Не забудьте о возможности использовать групп Windows .

Если вы создаете логин SQL Server , вам придется ввести его имя и пароль. Пароль всегда чувствителен к регистру, а логин — только тогда, когда чувствительность к регистру была определена при установке SQL Server 2005.

Конечно, кроме имени и пароля для логинов можно определить множество других параметров. Некоторые из них появились только в SQL Server 2005. Далее эти параметры перечислены с комментариями.

Enforce password policy (Использовать парольную политику) — эта новая возможность (ее можно использовать, только если SQL Server работает под управлением Windows 2003 Server ) позволяет определить требования к паролям для логинов SQL Server . Однако настроить эти требования на уровне SQL Server вы не можете: если флажок Enforce password policy будет установлен, то на пароль для данного логина просто будут распространены те требования, которые применяются к локальным учетным записям на данном компьютере. Проще всего просмотреть параметры парольной политики из редактора групповой политики, подключив его к локальному компьютеру. Последовательность действий при этом может выглядеть так:

1. Установить необходимую консоль на компьютер. Для этого в командной строке Windows 2000 Server или Windows 2003 достаточно выполнить команду Adminpak.msi . В Windows XP потребуется предварительно скопировать этот файл с компьютера, на котором установлен Windows Server 2003 (или с дистрибутива Windows 2003 Server ).

2. Открыть эту консоль. Проще всего это сделать так:

· в командной строке выполнить команду MMC ;

· в меню Консоль выбрать команду Добавить или удалить оснастку;

· в открывшемся окне нажать кнопку Добавить;

· в списке оснасток выбрать Редактор объектов групповой политики;

· на экране Выбор объекта групповой политики выбрать Локальный компьютер .

3. Раскрыть узел Политика "Локальный компьютер" | Конфигурация компьютера | Конфигурация Windows | Параметры безопасности | Политики учетных записей | Политика паролей и посмотреть, что ожидает пользователей SQL Server .

Если компьютер, на котором установлен SQL Server 2005, не входит в домен, то к логинам SQL Server 2005 по умолчанию будут применяться требования, представленные на рис. 5.1.

Рис. 5.1. Требования к паролям, применяемые по умолчанию для логинов SQL Server 2005

Если компьютер находится в домене, то все зависит от администратора домена.

Обратите внимание, что при установленном флажке Enforce password history (Использовать парольную политику) на логин распространяются не только требования к паролям, но и политики блокировки учетных записей, принятые на этом компьютере. Они настраиваются из той же консоли при помощи контейнера Политика блокировки учетной записи. Те параметры, которые можно настроить, и их значения по умолчанию представлены на рис. 5.2.

Рис. 5.2. Параметры блокировки паролей для логинов SQL Server 2005 по умолчанию

Enforce password expiration (Включить устаревание пароля) — этот параметр определяет, будут ли на логин SQL Server распространяться те же требования по смене пароля через определенный промежуток времени, что и для учетных записей Windows . Этот флажок можно установить только при установленном флажке Enforce password history.

С точки зрения автора, флажок Enforce password expiration лучше не устанавливать, поскольку тогда по умолчанию через 42 дня при входе пользователя в сеть потребуется смена пароля. В большинстве случаев клиентское приложение не обеспечивает необходимый интерфейс, и пользователь просто перестанет входить в SQL Server .

User must change password at next logon (Пользователь должен поменять пароль при следующем входе) — с этим флажком нужно быть исключительно осторожным. Окно для смены пароля появляется только в SQL Server Management Studio . Большинство других приложений при попытке подключиться от имени такого пользователя просто вернут ошибку. Работать этот флажок будет, только если возможность смены пароля предусмотрел разработчик клиентского приложения, что бывает далеко не всегда.

Отметим еще один момент, связанный с паролями. Как показывает опыт, даже если клиентское приложение предоставляет пользователю возможность поменять свой пароль для логина SQL Server самостоятельно, не стоит надеяться на то, что пользователь сможет сам придумать действительно защищенный пароль, а не простую комбинацию типа "123". По глубокому убеждению автора, пароли для пользователей должен придумывать тот, кто отвечает за безопасность системы, т. е. администратор SQL Server 2005.

Mapped to certificate (Привязан к сертификату) и Mapped to asymmetric key (Привязан к асимметричному ключу) — эти параметры позволяют просмотреть сертификат или асимметричный ключ, который будет применяться для данного пользователя. Назначить сертификат можно только при помощи команды Transact — SQL CREATE LOGIN . Подробнее про использование сертификатов и асимметричных ключей для аутентификации и шифрования данных будет рассказано в разд. 5.6.

Default database (База данных по умолчанию) — база данных, к которой по умолчанию будет подключаться пользователь при входе на SQL Server . По умолчанию используется база данных m aster . Как правило, менять этот параметр не следует: код для перехода к нужной базе данных при подключении обеспечивает клиентское приложение.

Default language (Язык по умолчанию) — язык, который будет использоваться по умолчанию данным пользователем во время сеансов. В основном он влияет на формат даты и времени, которые возвращает SQL Server . В большинстве случаев для этого параметра оставляется значение по умолчанию (т. е. язык, настроенный на уровне всего сервера), если о другом значении специально не просит разработчик.

На вкладке Status (Состояние) свойств логина можно настроить для этого логина дополнительные параметры:

q Permissions to connect to database engine (Разрешение на подключение к ядру баз данных) — по умолчанию для всех логинов устанавливается значение Grant , т. е. подключаться к SQL Server разрешено. Значение Deny , как правило, используется только в одном случае — когда вы предоставляете доступ на SQL Server 2005 логину для группы Windows , а одному или нескольким членам этой группы доступ нужно запретить. Поскольку явный запрет всегда имеет приоритет перед разрешением, то достаточно будет создать свои собственные логины Windows для этих пользователей и установить для них значение Deny .

q Login enabled / disabled (Логин включен/отключен) — конечно, все логины по умолчанию включены. Обычно отключать их приходится только в ситуации, когда какой-то пользователь увольняется или переходит на другую работу. Чтобы сэкономить время, достаточно просто отключить данный логин, а при появлении пользователя со схожими рабочими обязанностями переименовать этот логин, поменять пароль и включить. Заниматься предоставлением разрешений заново в этом случае не придется.

q Login is locked out (Логин заблокирован) — установить этот флажок вы не можете (только снять его). Учетная запись пользователя блокируется автоматически после нескольких попыток неверного ввода пароля для логина SQL Server , если такая блокировка настроена на уровне операционной системы, а для логина установлен флажок Enforce password policy .

Для логина предусмотрено также несколько "секретных" свойств, которые доступны только при использовании команд CREATE LOGIN , ALTER LOGIN или специальных функций Transact — SQL . Графического интерфейса для их изменения не предусмотрено. Все эти свойства являются новыми по отношению к предыдущим версиям SQL Server , поэтому далее приведен их перечень с комментариями.

q HASHED — указывает, что вы передаете не пароль, а его хэшированное значение. Это свойство стоит использовать только в том случае, если вы создаете свою систему безопасности для приложения.

q CREDENTIAL — назначает логину объект Credential (который представляет собой набор "имя учетной записи Windows /пароль"). Объект Credential обычно используется в ситуациях, когда пользователь из кода Transact — SQL должен выполнить какие-то действия в операционной системе или на другом сервере SQL Server . Эти действия он сможет выполнить от имени учетной записи, которая определена при помощи объекта Credential . Сам объект можно создать из контейнера Credentials в SQL Server Management Studio или при помощи команды CREATE CREDENTIAL .

q SID — позволяет явно назначить логину глобально-уникальный идентификатор безопасности (если его не указать, то он будет сгенерирован автоматически). Выглядеть он может, например, так: 0xD3B670F1A11E6C41B8F965EA3C2E189E . Просмотреть его для существующего пользователя можно при помощи функции SUSER_SID . Настраивать его стоит только в том случае, если он будет использоваться в таблицах ваших баз данных или для дополнительных проверок.

q ID — идентификатор логина в системных таблицах SQL Server . Если SID — это глобально-уникальный идентификатор, то ID — это просто номер, который может выглядеть, например, так: 266 . Настроить его нельзя, а просмотреть можно при помощи функции SUSER_ID .

Параметры, которые есть на других вкладках свойств логина ( Server Roles , User Mapping , Securables ), будут рассмотрены в следующих разделах данного модуля.

Базы данных

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

Описание

Оператор CREATE LOGIN создает идентификатор, используемый для подключения к экземпляру SQL Server. Login затем сопоставляется с пользователем базы данных (поэтому перед созданием пользователя на SQL Server вы должны сначала создать Login).

Существует четыре типа логинов, которые можно создать в SQL Server:

  1. Вы можете создать Login с использованием проверки подлинности Windows.
  2. Вы можете создать Login с использованием проверки подлинности SQL Server.
  3. Вы можете создать Login из сертификата.
  4. Вы можете создать Login из асимметричного ключа.

Синтаксис

Синтаксис оператора CREATE LOGIN с использованием проверки подлинности Windows:

ИЛИ Синтаксис оператора CREATE LOGIN с использованием проверки подлинности SQL Server:

ИЛИ
Синтаксис оператора CREATE LOGIN с использованием сертификата:

ИЛИ
Синтаксис оператора CREATE LOGIN с использованием асимметричного ключа:

Параметры или аргументы

domain_name — имя учетной записи домена Windows.
login_name – наименование login.
database_name — база данных по умолчанию для которой назначен Login.
language_name — язык по умолчанию для назначения Login.
CHECK_EXPIRATION — по умолчанию он установлен в положение OFF. Этот параметр определяет, будет ли применяться политика истечения срока действия пароля. Вы должны указать CHECK_EXPIRATION = ON, когда вы используете опцию MUST_CHANGE .
password — пароль для Login.
hashed_password — хешированное значение пароля для Login.
MUST_CHANGE — используется, когда вы хотите принудительно изменить пароль при первом входе в систему.
sid_value — GUID логина. Если этот параметр опущен, SQL Server назначит идентификатор GUID для входа.
credential_name — имя учетных данных для присвоения имени входа.
CERTIFICATE_NAME — имя сертификата для присвоения имени.
asym_key_name — имя асимметричного ключа для назначения для входа.

Примечание

  • См. также оператор ALTER LOGIN и оператор DROP LOGIN.

Пример — проверка подлинности Windows

Рассмотрим, как создать вход с использованием проверки подлинности Windows в SQL Server (Transact-SQL).
Например:

ПРИМЕНЯЕТСЯ К: SQL Server (начиная с 2008) База данных SQL Azure Хранилище данных SQL Azure Parallel Data Warehouse

Создает имя входа компонента Компонент Database Engine для SQL Server и База данных SQL Azure.

Синтаксические обозначения в Transact-SQL

login_name
Указывает имя пользователя для создаваемого имени входа. Существует четыре типа имен входа: имена входа SQL Server, имена входа Windows, имена входа, сопоставленные с помощью сертификата, а также имена входа, сопоставленные с помощью асимметричного ключа. При создании имен входа, сопоставленных с учетной записью домена Windows, необходимо использовать пред-Windows 2000 имя входа пользователя в формате [<>> ]. Нельзя использовать UPN в формате login_name@DomainName. См. приведенный ниже пример Г. SQL Serverучетные записи проверки подлинности — тип sysname , они должны соответствовать правилам для идентификаторы и не может содержать "". Имена входа Windows могут содержать символы «».

PASSWORD =’password
Применяется только к именам входа SQL Server . Задает пароль для создаваемого имени входа. Следует использовать надежные пароли. Дополнительные сведения см. в разделах Strong Passwords и Password Policy. Начиная с версии SQL Server 2012, хранимые сведения о пароле вычисляется с использованием SHA-512 дополненные пароля.

В паролях учитывается регистр символов. Пароли всегда должны содержать не менее 8 символов и не могут содержать более 128 символов. Пароли могут содержать символы a-z, A-Z, 0-9 и большинство неалфавитных символов. Пароли не могут содержать одинарные кавычки или login_name.

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

Применимо только к ключевому слову HASHED. Указывает хэшированное значение пароля для создаваемого имени входа.

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

Применяется только к именам входа SQL Server . Указывает, что пароль, введенный после аргумента PASSWORD, уже хэширован. Если этот параметр не выбран, то строка, введенная в качестве пароля, хэшируется перед сохранением в базе данных. Данный параметр может быть применен только для миграции баз данных с одного сервера на другой. Не используйте параметр HASHED для создания новых имен входа. Параметр HASHED нельзя использовать с хэшами, созданными SQL Server 7 или более ранних версий.

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

Применяется только к именам входа SQL Server . Если этот параметр задан, то при первом использовании нового имени входа SQL Server запрашивается новый пароль.

Учетные данные ** = ** credential_name

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

Имя учетных данных для сопоставления с новым именем входа SQL Server . Учетные данные уже должны существовать на сервере. В настоящее время этот параметр только связывает учетные данные с именем входа. Учетные данные, не может быть сопоставлен имени входа системного администратора (sa).

S > Используется для повторного создания имени входа. Применяется только к именам входа проверки подлинности SQL Server , но не относится к именам входа проверки подлинности Windows. Указывает идентификатор SID нового имени входа проверки подлинности SQL Server . Если этот параметр не используется, SQL Server назначает идентификатор SID автоматически. Структура идентификатора безопасности зависит от версии SQL Server .

SQL Serverидентификатор SID имени входа: 16-байтовое (binary(16)) литеральное значение, основанное на GUID. Например, S >.

База данных SQLидентификатор SID имени входа: структура SID, допустимые для База данных SQL Azure. Обычно это 32 байт (binary(32)) литерал, состоящий из 0x01060000000000640000000000000000 плюс 16 байт, представляющей идентификатор GUID. Например, S >.

DEFAULT_DATABASE ** = ** базы данных

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

База данных по умолчанию, связываемая с именем входа. Если этот параметр не задан, то базой данных по умолчанию становится master.

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

Язык по умолчанию, назначаемый имени входа. Если этот параметр не задан, то в качестве языка по умолчанию выбирается текущий язык по умолчанию для сервера. При смене языка по умолчанию для сервера язык по умолчанию имени входа не меняется.

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

Применяется только к именам входа SQL Server . Указывает, должна ли политика истечения срока действия паролей принудительно применяться к этому имени входа. Значение по умолчанию — OFF.

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

Применяется только к именам входа SQL Server . Указывает, что политики паролей Windows компьютера, на котором работает SQL Server , должны принудительно применяться к этому имени входа. Значение по умолчанию — ON.

Если политика Windows требует надежных паролей, то пароль должен обладать по крайней мере тремя из следующих четырех качеств:

Наличие символов верхнего регистра (A-Z).

Наличие строчных символов (a-z).

Один из неалфавитных символов, например пробел, _, @, *, ^, %! #, $ или &.

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

Имя входа сопоставлено с именем входа Windows.

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

Имя сертификата, связываемого с данным именем входа. Этот сертификат должен уже существовать в базе данных master.

АСИММЕТРИЧНЫЙ ключ asym_key_name

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

Имя асимметричного ключа, связываемого с данным именем входа. Этот ключ должен уже существовать в базе данных master.

В паролях учитывается регистр символов.

Предварительное хэширование паролей поддерживается только при создании имен входа SQL Server .

Если задан параметр MUST_CHANGE, то параметры CHECK_EXPIRATION и CHECK_POLICY должны иметь значение ON. В противном случае выполнение инструкции приведет к ошибке.

Сочетание CHECK_POLICY = OFF и CHECK_EXPIRATION = ON не поддерживается.

Если значение CHECK_POLICY равно OFF, lockout_time сбрасывается и CHECK_EXPIRATION имеет значение OFF.

Важно

Параметры CHECK_EXPIRATION и CHECK_POLICY будут принудительно применяться только в Windows Server 2003 или более поздних версиях. Дополнительные сведения см. в разделе Password Policy.

Имена входа, созданные из сертификатов или асимметричных ключей, используются только для подписи кода. Они не могут использоваться для подключения к SQL Server. Имя входа можно создать на основе сертификата или ассиметричного ключа только в том случае, если сертификат или асимметричный ключ уже существуют в базе данных master.

При создании имени входа оно автоматически включается, и ему предоставляется разрешение CONNECT SQL уровня сервера.

Сведения о проектировании системы разрешений см. в статье Getting Started with Database Engine Permissions.

В База данных SQL, CREATE LOGIN инструкция должна быть единственной инструкцией в пакете.

В некоторых методах подключения к База данных SQL, такие как sqlcmd, необходимо добавить База данных SQL имя сервера для имени входа в строке подключения с помощью * <> > * @ * <> > * нотации. Например, если имя входа — login1 и полное имя База данных SQL сервера servername.database.windows.net , пользователя параметр строки подключения должен быть login1@servername . Поскольку общая длина пользователя параметра составляет 128 символов login_name ограничена до 127 символов минус длина имени сервера. В примере login_name может иметь длину не более 117 символов, поскольку servername имеет длину 10 символов.

В База данных SQL и Хранилище данных SQL необходимо подключение к базе данных master, чтобы создать имя входа.

SQL Serverправила позволяют создать SQL Server проверки подлинности имени входа в формате <> >@<>>. Если ваш База данных SQL сервера myazureserver и имя входа — ** myemail@live.com **, то необходимо указать имя входа в виде ** myemail@live.com @myazureserver **.

В База данных SQL, учетные данные, необходимые для проверки подлинности подключения и правила брандмауэра уровня сервера временно кэшируются в каждой базе данных. Этот кэш периодически обновляется. Чтобы принудительно обновить кэш проверки подлинности и убедиться, что база данных имеет последнюю версию таблицы, имена входа, выполните FLUSHAUTHCACHE DBCC (Transact-SQL).

Дополнительные сведения об именах входа служб База данных SQL см. в разделе Управление базами данных и именами входа в базу данных SQL Windows Azure.

В SQL Server, требует ALTER ANY LOGIN разрешение на сервер или членство в securityadmin фиксированной серверной роли.

В службах База данных SQL создавать новые имена входа могут только имя входа участника уровня сервера (созданного процессом провизионирования) или члены роли loginmanager базы данных в базе данных master.

Если используется параметр CREDENTIAL , также необходимо разрешение ALTER ANY CREDENTIAL на сервере.

После создания имя входа подключается к компоненту Компонент Database Engine или База данных SQL , но имеет разрешения только роли public . Попробуйте выполнить некоторые из приведенных ниже действий.

Чтобы подключиться к базе данных, создайте пользователя базы данных для имени входа. Дополнительные сведения см. в разделе CREATE USER (Transact-SQL).

Создание определяемой пользователями серверной роли с помощью CREATE SERVER ROLE (Transact-SQL). Воспользуйтесь инструкциями ALTER SERVER ROLEДобавить ЧЛЕНА Добавление нового имени входа в определяемой пользователями серверной роли. Дополнительные сведения см. в разделе CREATE SERVER ROLE (Transact-SQL) и ALTER SERVER ROLE (Transact-SQL).

Используйте sp_addsrvrolemember Добавление имени входа к фиксированной серверной роли. Дополнительные сведения см. в разделе роли уровня сервера и sp_addsrvrolemember (Transact-SQL).

Используйте GRANT инструкции, чтобы предоставить разрешения уровня сервера для нового имени входа или роли, содержащей имя входа. Дополнительные сведения см. в разделе GRANT (Transact-SQL).

A. Создание имени входа с паролем

В следующем примере создается имя входа для конкретного пользователя и назначается пароль.

Б. Создание имени входа с паролем

В следующем примере создается имя входа для конкретного пользователя и назначается пароль. Параметр MUST_CHANGE требует, чтобы пользователь изменил этот пароль при первом подключении к серверу.

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

В. Создание имени входа, сопоставленного с учетными данными

В следующем примере создается имя входа для конкретного пользователя с использованием идентификатора пользователя. Это имя входа сопоставляется с учетными данными.

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

Г. Создание имени входа на основе сертификата

В следующем примере создается имя входа для конкретного пользователя на основе сертификата в базе данных master.

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

Д. Создание имени входа на основе учетной записи домена Windows

В следующем примере имя входа создается на основе учетной записи домена Windows.

Область применения: начиная с SQL Server 2008 до SQL Server 2016.

Е. Создание имени входа на основе SID

Следующий пример создает имя входа с проверкой подлинности SQL Server и определяет его SID.

Запрос возвращает 0x241C11948AEEB749B0D22646DB1A19F2 как идентификатор безопасности. Ваш запрос вернет другое значение. Следующие выражения удаляют имя входа, а затем повторно создают имя входа. Используйте SID из предыдущего запроса.

Ж. Создание имени входа для проверки подлинности SQL Server с паролем

В следующем примере создается имя входа Mary7 с паролем A2c3456 .

З. С помощью параметров

В следующем примере создается имя входа Mary8 с паролем некоторые необязательные аргументы.

И. Создание имени входа на основе учетной записи домена Windows

В следующем примере создается имя входа с учетной записью домена Windows с именем Mary в Contoso домена.

Читайте также:  Chuwi hi9 air mt6797 x20

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *