Как сделать проверку подлинности sql server

Добавил пользователь Morpheus
Обновлено: 04.10.2024

MSSQL Server (Microsoft SQL Server) — это система управления базами данных от компании Microsoft. Для работы в MSSQL используется расширенный язык SQL — Transact-SQL.

Существует 4 редакции MS SQL Server:

  • Enterprise — содержит все возможности MSSQL.
  • Standard — содержит основные возможности. В сравнении с Enterprise имеет ограничения в функциональности и в ресурсах.
  • Developer — редакция для разработчиков. Содержит все возможности SQL Server, но использовать можно только для разработки программного обеспечения.
  • Express — бесплатная редакция сервера SQL. Можно использовать в обучении или на небольших серверах.

На хостинге 2DOMAINS поддержка MS SQL есть на тарифах Windows-хостинга (кроме Host-Lite) и Windows VPS.

Как создать базу данных MSSQL на хостинге

1. Войдите в панель управления хостингом. Для этого в списке услуг нажмите на услугу хостинга, а затем на Панель управления.

2. В левом меню перейдите в раздел Базы данных и нажмите Добавить базу данных:


3. Заполните поля для новой базы данных и пользователя:

  • Имя базы данных,
  • Сервер баз данных — выберите localhost (по умолчанию для MS SQL),
  • Соответствующий сайт,
  • Имя пользователя базы данных,
  • Пароль,
  • Подтверждение пароля.

Затем нажмите OK:


Готово, вы создали базу данных MSSQL.

MSSQL: удалённый доступ

Работать с базой данных можно через панель управления хостингом или удалённо при помощи SSMS (SQL Server Management Studio). Рассмотрим второй вариант.

Скачайте SSMS с сайта Microsoft и установите на ваш компьютер. После завершения установки вы сможете подключиться к серверу. Для этого:

1. Запустите SSMS и укажите параметры для подключения к серверу баз данных:

2. Нажмите Соединить:


Готово, вы установили SQL Server Management Studio и получили удалённый доступ к MSSQL.

Как отфильтровать базы данных

В списке баз данных в SSMS отображаются все базы данных, которые есть на сервере. Вы можете настроить фильтр, чтобы отображалась только нужная вам база данных. Для этого:


Готово, теперь в списке будет только нужная база данных:


Как уменьшить размер базы данных MS SQL

На тарифных планах хостинга 2DOMAINS максимальный размер базы данных составляет 4 ГБ. Если этот лимит будет превышен, услуга хостинга будет заблокирована, а база данных исключена из автоматического резервного копирования. Чтобы снять блокировку, нужно уменьшить размер базы данных.

Много места на диске может занимать лог транзакций базы данных. Этот логи можно сжать. Для этого:



Если права отсутствуют, обратитесь в поддержку.

6. В верхнем меню SSMS нажмите Создать запрос и вставьте команду:

SQL Server 2012-метод проверки подлинности и эксперимент с настройкой разрешений

Метод проверки подлинности SQL SERVER и эксперимент с настройкой разрешений

(1) Установите учетную запись для входа в "Безопасность"

Режим аутентификации SQL Server;

(2) Установите учетную запись пользователя базы данных и установите разрешения в базе данных университета.

Установите пользователя "st1" как пользователя базы данных университета;

Авторизуйте учетную запись "st1";



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

Добавить в базу данных, чтобы стать



Авторизовать этого пользователя



(3) Войдите на сервер базы данных с учетной записью "st1" и проверьте данные в базе данных Univeristy.

Стол для работы, анализа результата операции;





Право на переработку;


Стол для работы, анализа результатов работы;





Как показано на рисунке, операция с таблицей после отзыва разрешения будет отклонена.

Вы можете столкнуться с ошибкой SQL Server 18456, если сервер не может аутентифицировать соединение, и это может быть вызвано недоступностью прав администратора для SQL-сервера или если протокол TCP / IP отключен в настройках SQL-сервера.

Проблема возникает, когда пользователь пытается подключиться к серверу SQL (локальному или удаленному), но обнаруживает ошибку 18456 (с разными состояниями).


Также проверьте, правильно ли вы вводите имя базы данных (без опечаток), и убедитесь, что вы соответствующим образом обновили файл конфигурации. Кроме того, проверьте, решает ли проблему разблокировка учетной записи (с помощью запроса ALTER LOGIN WITH PASSWORD = UNLOCK). Если вы видите ошибки в журнале ошибок SQL, убедитесь, что ваш SQL-сервер не атакован. И последнее, но не менее важное: убедитесь, что часы сервера и клиентского компьютера установлены правильно.

Запустите SQL Server от имени администратора и отключите UAC на сервере.

Вы можете столкнуться с ошибкой 18456, если SQL-сервер не имеет повышенных разрешений на выполнение своей операции, и запуск его от имени администратора (или отключение элементов управления UAC на сервере) может решить проблему.

Откройте SQL Server от имени администратора

Запуск SQL Server в однопользовательском режиме

Если проблема не исчезнет, ​​проверьте, правильно ли настроены параметры запуска или сведения о пути. Если проблема все еще существует, убедитесь, что ваша учетная запись пользователя имеет необходимые разрешения для служб базы данных / отчетов, а затем проверьте, решена ли проблема.

Включите протокол TCP / IP в диспетчере конфигурации сервера.

Код ошибки 18456 на сервере SQL означает, что серверу не удалось аутентифицировать соединение, и это может произойти, если протокол TCP / IP, необходимый для доступа к базе данных в сети, отключен в диспетчере конфигурации сервера. В этом контексте включение TCP / IP в диспетчере конфигурации SQL Server может решить проблему.

Если это не помогло, убедитесь, что вы подключаетесь к правильному порту SQL-сервера (особенно, если вы используете сервер в многосерверной среде).

Измените режим аутентификации SQL Server

Сервер SQL может отображать ошибку 18456, если метод аутентификации сервера SQL не настроен должным образом (например: вы пытаетесь войти в систему с использованием аутентификации сервера SQL, тогда как сервер настроен на использование аутентификации Windows). В этом случае изменение метода аутентификации SQL-сервера может решить проблему. Прежде чем двигаться дальше, убедитесь, что для текущего пользователя включен статус входа в систему (например, SA).

Если вы не можете войти в SQL, вы можете установить MS Power Tools и выполнить следующую команду с повышенными привилегиями:

psexec.exe -i -s ssms.exe

После этого вы можете использовать учетную запись установки SQL, чтобы внести изменения, а также убедиться, что учетная запись SA не отключена:

Включите учетную запись SA и сбросьте пароль учетной записи

Если вы не можете подключиться к SQL Server, то включение учетной записи SA SQL-сервера и сброс его пароля может решить проблему.

Создайте новый логин и перезапустите службы Reporting Services

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

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

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

Ms sql create login

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

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 и Хранилище данных SQL необходимо подключение к базе данных master, чтобы создать имя входа.

В База данных 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 домена.

How to Create a Login

To create a login, Navigate to Security > Logins

Ms sql create login

In the next screen, Enter

  1. Login Name
  2. Select SQL Server authentication
  3. Enter Password
  4. Click Ok

Ms sql create login

Login is created

Ms sql create login

You can also create a login using the T-SQL command.

How to create a User

A user is an account that you can use to access the SQL server. To create users, you can use any of the following two ways:

  • Using T-SQL
  • Using SQL Server Management Studio

Create User using SQL Server Management Studio

You will be creating a user for the EDU_TSQL database.

You will get the following screen,

  1. Enter desired User name
  2. Enter the Login name (created earlier)
  3. Click OK

Ms sql create login

User is created

Ms sql create login

Create User using T-SQL

You can create a new USER using the T-SQL’s create user command. The command takes the following syntax:

Note: That the query should be executed within the query window. If a user is already created for a Login, SQL Server will throw an error if you create a user for the same login.

Assigning Permission to a User

Permissions refer to the rules that govern the levels of access that users have on the secured SQL Server resources. SQL Server allows you to grant, revoke and deny such permissions. There are two ways to assign permissions in SQL Server:

  • Using T-SQL
  • Using SQL Server Management Studio

Assign Permission Using SQL Server Management Studio

Step 1) Connect to your SQL Server instance and expand the folders from the Object Explorer as shown below. Right click on the name of the user, that is, Guru99 then choose Properties.

Ms sql create login

Step 2) In the next screen,

  1. Click the Securables option from the left.
  2. Click on Search

Ms sql create login

Step 3) In the next window,

  1. Select "All Objects belonging to the Schema."
  2. Select Schema name as "dbo"
  3. Click OK

Ms sql create login

Step 4)

Step 5) The user Guru99 is granted SELECT permission on table Course.

Grant Permission using T-SQL

To grant permission to a user using T-SQL, you first select the database using the use statement. You then assign the permission to the user using the grant statement. Here is the syntax:

For example, the following command shows how you can grant the select permission to the user Guru99 on the object (table) named Course within the Database EDU_TSQL:

Базы данных

В этом учебном пособии вы узнаете, как использовать 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).
Например:

Читайте также: