В ssms в настройках sql сервера включите аутентификацию windows

В Microsoft SQL Server, исторически сложилось 2 возможных типа аутентификации:внутренняя аутентификация средствами SQL аутентификация Windows.Режим проверки Windows, является основным, современным и рекомендованным к использованию типом аутентификации, а аутентификация средствами SQL Server

В Microsoft SQL Server, исторически сложилось 2 возможных типа аутентификации:

  • внутренняя аутентификация средствами SQL 
  • аутентификация Windows.

Режим проверки Windows, является основным, современным и рекомендованным к использованию типом аутентификации, а аутентификация средствами SQL Server оставлена преимущественно для совместимости с legacy системами, либо специальными задачами. Она включется только, если выбрать смешанный режим проверки подлиности (он разрешает оба типа аутентификации SQL Server и Windows). Проверку подлиности Windows отключить нельзя.

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

УЗ SA рекомендуется включать, только если это требуется для работы ПО, и ее пароль должен быть максимально безопасным. Хоть сейчас в целом нет необходимости использовать встроенную аутентификацию SQL, но еще встречается в инструкциях к third-party software, по прежнему использовать логин sa  для подключения и управления СУБД.

Преимущества аутентификации Windows

1. По сравнению  с аутентификацией SQL — она более безопасна, тк не передается логин и пароль, а используется встроенные механизмы безопасности Windows, токены или сертификаты
2. Централизованное управление (созданиеизменениеблокирование) учетными записями на уровне windows машины или инфраструктуры AD
3. Удобство пользователя: локально подключение осуществляется через сессию Windows

Преимущества аутентификации SQL сервер

1. Обеспечение поддержки устаревших систем
2. Возможность минимизировать взаимодействие с внешними системами. Например, при предоставлении доступа только УЗ SQL, можно ограничить перечень УЗ, которым позвонено получать доступ к данным, причем централизованное упраление УЗ не позволит к ним подключиться просто сменив пароль на уровне AD
3. Возможность в рамках одной сессии настроит разные процессы с разными правами доступа.

Как изменить тип аутентификации в Microsoft SQL Server 2019

Самый простой способ изменения типа аутентификации SQL, это использование графического интерфейса SQL Server Management Studio (SSMS). 

SSMS -включен в полную версию дистрибутива SQL Server, а также его можно бесплатно скачать с сайта Microsoft по ссылке:

SSMS

.

1. Запустить SSMS, и указать имя целевого SQL сервера
2. Подключиться и выбрать свойства сервера (Properties)
Properties SQL3. Перейти на закладку Security и выбрать необходимый режим проверки подлинности.
Security SQL Server4. Нажать ОК
5. в случае, если режим аутентификации менялся, то для применения настроек, необходимо выполнить перезапуск службы SQL Server или перезагрузить сервер целиком.

Поддерживаемые методы авторизации

Имеется два различных метода авторизации для подключения к SQL Server: Windows и SQL Server.

Для авторизации Windows требуется, чтобы пользователь сначала авторизовался в Windows со своим логином и паролем. После этого он может подключиться к SQL Server, используя авторизацию Windows. То есть при условии, что их учетной записи Windows был предоставлен доступ к SQL Server через логин (подробнее о логинах ниже). Авторизация Windows тесно связана с безопасностью Windows и называется интегрированной безопасностью (Integrated Security). Авторизация Windows прекрасно работает, когда лицо является частью домена Windows.

Но бывают случаи, когда люди не могут подключиться к Windows; это имеет место при авторизации SQL. Авторизация SQL является менее безопасной, чем авторизация Windows. Для подключения к SQL Server с помощью авторизации SQL, пользователь должен указать логин и пароль при подключении. Пароль логина при авторизации SQL хранится в базе данных master. Т.к. пароль хранится в базе данных, его легче взломать. Поскольку можно сделать бэкап базы с последующим восстановлением, этот способ авторизации менее безопасен, чем при использовании авторизации Windows.

Поскольку авторизация SQL менее безопасна, чем авторизация Windows, рекомендуется при установке экземпляра SQL Server выбирать смешанный режим, если вам требуется поддержка пользователей или приложений, которые не могут подключаться к Windows. Несмотря на то, что авторизация Windows более безопасна и является рекомендуемой практикой для подключения к SQL Server, многие поставщики нестандартного прикладного программного обеспечения до сих пор не поддерживают подключение посредством авторизации Windows.

Установка SQL Server с поддержкой различных режимов авторизации

При установке SQL Server вы можете выбрать поддержку только авторизации Windows или обоих методов авторизации, которая называется смешанным режимом. В процессе установки при определении конфигурации ядра базы данных вы решаете использовать ли смешанный режим, что показано на рис.1.


Рис.1 Выбор режима авторизации

Авторизация Windows выбирается по умолчанию (красная стрелка на рис.1). Если вам требуется поддержка авторизации как Windows, так и SQL Server, вам следует выбрать вариант “Mixed Mode”. При этом становится доступным установка пароля аккаунта SA, и вам потребуется задать пароль SA. При выборе только авторизации Windows, аккаунт SA недоступен. Чтобы защитить учетную запись SA при использовании смешанного режима, вы можете отключить ее после включения.

Как определить, какие методы авторизации поддерживаются

Вы можете проверить установленный метод авторизации несколькими способами. Один из способов — использовать SQL Server Management Studio (SSMS). Для этого выполните щелчок правой кнопкой на имени экземпляра и выберите команду Properties (свойства). В моем случае окно свойств показано на рис.2.


Рис.2 Определение режима авторизации

На рис.2 показывается, что мой экземпляр поддерживает смешанный режим авторизации (красная стрелка).

Другой способ — это использовать код T-SQL. На листинге ниже представлен код для вывода режима авторизации.

SELECT CASE SERVERPROPERTY('IsIntegratedSecurityOnly')   
WHEN 1 THEN 'Windows Authentication Only'
WHEN 0 THEN 'Windows and SQL Server Authentication'
END as [Authentication Mode];

Листинг 1: отображение режима авторизации

Изменение методов авторизации после установки SQL Server

Вы можете захотеть изменить установки авторизации для экземпляра SQL Server. Вы могли использовать настройки по умолчанию при установке для поддержки авторизации Windows, а затем приобрели программу, которая может подключаться к серверу только при использовании авторизации SQL Server. Или вы захотели сделать ваш экземпляр более безопасным, удалив поддержку авторизации SQL Server. Опции авторизации можно легко изменить, используя страницу свойств в SSMS, показанную на рис.2.

Если бы я захотел изменить поддержку авторизации только на Windows, все, что мне потребовалось бы сделать, это щелкнуть на кнопке “Windows authentication mode”, а затем на кнопке ОК для сохранения изменений. После изменения этого свойства, необходимо перезапустить экземпляр, чтобы изменения вступили в силу.

Логины SQL Server

Для подключения к SQL Server вы должны иметь доступ к серверу. Доступ гарантируется посредством логина. Логин также называют участником безопасности (security principal), он хранится в базе данных master. Есть одно исключение — это доступ к автономной базе данных. Пользователи автономных баз данных напрямую подключаются к базе данных без необходимости иметь логин в базе данных master. Автономные базы данных — это тема для последующих статей.

Имеется три типа логинов, которые хранятся в базе данных master: пользователь Windows, группа Windows и SQL. Давайте рассмотрим каждый из этих трех типов логинов.

Логин пользователя Windows предоставляет доступ отдельному пользователю Windows. При создании логина этого типа не требуется задавать пароль. Этот тип логина требует, чтобы пользователь сначала прошел валидацию, подключившись к домену Windows. Пароль хранится в домене Windows.

Логин SQL Server подобен логину Windows в том, что он предоставляет доступ к SQL Server для отдельного пользователя, но отличается тем, что пароль логина SQL хранится в базе данных master. Следовательно, при создании логина SQL Server требуется указывать пароль, а также некоторые другие опции, как показано на рис.3.


Рис.3 Настройка логина при авторизации SQL Server

На рис.3 показано, что для входа в SQL Server может быть применена политика паролей Windows и истечения срока действия, а также может потребовать от пользователя изменить пароль при первом входе в систему. Microsoft добавила эти новые возможности в SQL Server 2005. Для поддержки этих новых возможностей в приложениях может использоваться API NetValidatePasswordPolicy.

Последний тип логина, логин группы Windows, подобен логину Windows с незначительными отличиями. Логин группы Windows обеспечивает доступ к экземпляру SQL Server каждому логину Windows, который является членом группы. Группы Windows являются хорошим способом предоставить доступ множеству логинов Windows при наличии только одного логина SQL Server. Используя группу Windows, доступ к экземпляру SQL Server может регулироваться добавлением или удалением членов группы. Использование групп Windows помогает минимизировать усилия по обеспечению безопасности и решению проблем безопасности, связанных с логинами.

Внизу скриншота на рис.3 вы видите настройку для логина “Default Database” (база данных по умолчанию). При создании логина базой данных по умолчанию является база данных master. Вы можете поменять эту настройку на любую базу данных на сервере. Лучший вариант — установить по умолчанию базу данных, которую пользователь будет использовать при подключении к SQL Server.

Логины Windows считаются более безопасными из-за способа, каким сохраняется пароль для логина. Пароль для логина Windows сохраняется при использовании настоящего шифрования. В то время как пароль для логина SQL не шифруется, а хэшируется. Поэтому пароль SQL легче взломать. Для установки логинов и паролей Windows требуется администратор доменов, а для логинов SQL администраторы базы данных заводят логины и пароли. Использование админов доменов для управления паролями логинов обеспечивает еще один слой безопасности, обычно называемый разделением обязанностей. Разделение обязанностей по созданию и управлению логинами Windows от управления базами данных и доступа к ним обеспечивает дополнительный контроль безопасности по предоставлению доступа к данным, хранящимся на SQL Server.

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

Пользователи базы данных

Пользователь базы данных — это не то же самое, что и логин. Логин предоставляет пользователю или приложению возможность подключаться к экземпляру SQL Server, в то время как пользователь базы данных дает пользователю права на доступ к базе данных. В каждой базе данных, к которой логину требуется доступ, требуется определить пользователя; исключение составляет логин с правами системного администратора. Если логин имеет права сисадмина, он имеет доступ ко всем базам данных без необходимости связывать его с пользователем базы данных. Эта связь между логином и пользователем базы данных называется мэппингом пользователей. Мэппинг пользователя для логина может быть создан во время создания логина или позже для уже установленных логинов.

Создание пользователя базы данных при создании нового логина

Чтобы показать обеспечение мэппинга пользователя при создании нового логина, я создам новый логин SQL Server с именем “Red-Gate”. На скриншоте (рис.4) показано окно “Login – new”, где я определяю новый логин. Чтобы вывести это окно, я разворачиваю вкладку “Security” в дереве объектов моего экземпляра, а затем выполняю щелчок правой кнопкой на строке «Logins» и выбираю пункт “New Login…” из выпадающего списка.


Рис.4 Создание логина Red-Gate

На рис.4 я ввожу «Red-Gate» в качестве имени логина и пароль этого логина SQL в соответствующих полях диалога. Для предоставления доступа этому новому логину я выполняю щелчок на пункте “User Mapping” в левой панели. После этого откроется окно, показанное на рис.5.


Рис.5 Окно мэппинга пользователя

В красном прямоугольнике выводится список баз данных, с которыми можно связать мой новый логин. Для мэппинга логина “Red-Gate” с базой данных “AdventureWorks2019” мне нужно просто щелкнуть на флажке «Map» рядом с базой данных AdventureWorks2019. Теперь я получу то, что показано на скриншоте (рис.6).


Рис.6 Мэппинг логина с базой данных

После установки флажка Map имя “Red-Gate” автоматически заносится в столбец «User» для базы данных AdventureWorks2019. В интерфейсе автоматически генерируется имя пользователя базы данных, совпадающее с логином. Имена пользователей базы данных не обязательно должны совпадать с логинами. Если вы хотите использовать другое имя, просто наберите желаемое имя вместо предложенного (в моем случае “Red-Gate”). Мэппинг логина с пользователями базы данных обеспечивает только доступ к базе данных, но не предоставляет прав на чтение или обновление данных в базе. В следующих статьях я буду обсуждать предоставление доступа к объектам базы данных на чтение/запись.

Предположим я хочу связать мой новый логин “Red-Gate” и с другими пользовательскими базами данных. В этом случае мне нужно просто проставить флажки рядом с требуемыми базами данных. В данном примере я осуществляю мэппинг логина “Red-Gate” только с базой данных AdventureWorks2019. Для завершения процедуры мэппинга моего логина “Red-Gate” с пользователем базы данных “Red-Gate” нужно щелкнуть кнопку «ОК».

Создание нового пользователя базы данных и связывание его с существующим логином

Иногда, когда логин уже существует, требуется предоставить ему доступ к тем или иным базам данных. Предположим, что теперь я хочу установить доступ моему логину Red-Gate к базе данных с именем MyDatabase. Чтобы предоставить логину Red-Gate доступ к еще одной базе данных, у меня есть несколько вариантов. Одним из них может быть просто модификация мэппинга пользователя путем изменения свойств логина. Это подобно тому, как я только что показал, добавляя мэппинг пользователя при создании логина Red-Gate.

Другой вариант — это добавление нового пользователя в базу данных MyDatabase, а затем связывание этого нового пользователя базы данных с логином Red-Gate. Чтобы создать нового пользователя в базе данных MyDatabase, нужно сначала развернуть базу данных, щелкнуть правой кнопкой на пункте “Security”, переместить указатель на пункт «New», а затем щелкнуть на пункте «User…», как показано на рис.7.


Рис.7 Диалог ввода нового пользователя базы данных

При щелчке на пункте меню «User…» откроется окно, показанное на рис.8.


Рис.8 Добавление нового пользователя базы данных

Чтобы предоставить логину Red-Gate доступ к MyDatabase, нужно заполнить форму на рис.8. Сначала рассмотрим пункт “User Type” (тип пользователя). Значением по умолчанию для этого поля является “SQL User with Login” (пользователь SQL с логином). Имеется четыре других типа: SQL user without login (пользователь SQL без логина), User mapped to a certificate (пользователь, связанный с сертификатом), User mapped to an asymmetric key (пользователь, связанный с асимметричным ключом) и пользователи Window. Поскольку я создаю пользователя, который будет связан с логином SQL, я использую значение по умолчанию. Затем я ввожу имя создаваемого пользователя базы данных. Это может быть любое имя, но я предпочитаю использовать имена, совпадающие с соответствующими логинами. Поэтому я введу «Red Gate» в поле «User name». Затем я свяжу нового пользователя с логином. Для этого я могу либо набрать «Red Gate» для логина, либо использовать кнопку «…» для навигации по списку существующих логинов и выбрать нужный.

Последнее, что требуется, это определить схему по умолчанию для этого логина. Имя схемы ассоциируется с коллекцией объектов базы данных, владельцем которых является пользователь базы данных. По умолчанию каждая база данных имеет схему с именем «dbo», владельцем которой является учетная запись пользователя «dbo». При задании нового пользователя базы данных не обязательно указывать схему. Если схема не задана, будет использоваться схема по умолчанию «dbo». Я оставлю обсуждение различных аспектов схем для другой статьи. Когда я создаю нового пользователя базы данных Red-Gate, я оставляю пустым поле схемы по умолчанию и позволяю процессу создания нового пользователя автоматически установить схему по умолчанию в «dbo».

После создания нового пользователя я могу проверить его существование в базе данных, развернув ветку «User» в папке «Security» браузера объектов. Вы также можете создать нового пользователя базы данных и связать его с логином с помощью скрипта. В листинге 2 приводится пример использования T-SQL для создания того же пользователя, которого я только что создал визуальными средствами.

USE [MyDatabase]
GO
CREATE USER [Red-Gate] FOR LOGIN [Red-Gate]
GO

Листинг 2: Создание пользователя базы данных Red-Gate с помощью T-SQL

Методы авторизации SQL Server, логины и пользователи базы данных

Для подключения к SQL Server человеку или процессу необходимо авторизоваться. Имеется два различных метода авторизации на SQL Server: Windows и SQL Server. Метод Windows более безопасен и рекомендуется для подключении к SQL Server. Каждое авторизованное подключение к SQL Server получает доступ к экземпляру посредством логина. Логины определяются на уровне сервера. Сами по себе логины не обеспечивают доступ к данным на SQL Server. Для этого необходимо связать логин с пользователем базы данных. Методы авторизации, логины и пользователи базы данных обеспечивают основы безопасности SQL Server.

Данная заметка будет полезна людям не имеющих опыта работы с Microsoft SQL Server и столкнувшихся с проблемой аутентификации под учетными записями SQL сервера.

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

  1. Windows Authentication mode
  2. SQL Server and Windows Authentication mode

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

В противном случае есть два варианта.
Первый вариант предполагает изменение в регистре поля SQL Сервера хранящего значение типа аутентификации.

Для изменения требуется зайти в 

HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server 

Для определения экземпляра нашего сервера, необходимо посмотреть значение поля  MSSQLSERVER находящегося в HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerInstance NamesSQL в параметре.

В данном случае имя сервера MSSQL10_50.MSSQLSERVER 

За аутентификацию отвечает параметр LoginMode, находящийся в ветке MSSQLServer в экземпляре нашего сервера, т.е. в данном примере параметр LoginMode будет находиться в
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLServer 
 

Поле LoginMode может иметь два значения :

  1. Windows аутентификация
  2. SQL Server and Windows Authentication mode (смешанная)

Изменяем значение на 2, жмем кнопку OK и ОБЯЗАТЕЛЬНО перезапускаем SQL Server. 

Перезапуск сервера осуществляется путем перезапуска сервиса SQL Server (MSSQLSERVER)

Второй вариант заключается в использовании SQL Management Studio

Если при установке SQL сервера был выбран  пункт Management Tools , то повторная установка компонента, естественно, не требуется 

Процесс установки достаточно очевиден, по этому подробно разбирать его не вижу смысла.
После установки необходимо зайти в систему от имени пользователя аккаут которого существует в SQL сервере и запустить SQL Management Studio

В появившемся окне выбрать сервер ( в данном случае local) и тип аутентификации ( в нашем случае именно поэтому необходимо логиниться в систему под учетной записи пользователя находящегося в списке пользователей SQL)

После аутентификации нужно войти в свойства сервера

и на вкладке Security выбрать необходимый тип аутентификации

После нажатия клавиши OK появится предуплреждение о необходимости перезапуска SQL сервера для применения изменений

Перезапустить SQL Server можно из окна SQL Management Studio, выбрав на необходимом сервере Restart

P.S. Чтобы залогиниться из power shell учетной записью Windows необходимо использовать ключ E, в отличии от аутентификации SQL пользователем osql -U sa
Поэтому необходимо  выполнить от имени пользователя Windows oslq -E 

Настройка MSSQL Server Express для доступа из локальной сети.

Столкнулся с проблемой доступа из локальной сети к развернутому экземпляру MSSQL Server Express. Рассмотрим как настроить доступ к экземпляру SQL.

Запускаем SQL Server Configuration Manager. Переходим в Сетевая конфигурация SQL ServerПротоколы для SQLEXPRESS (где SQLEXPRESS — имя экземпляра SQL Server).

Включаем протокол TCP/IP и переходим в его свойства, во вкладку IP-адреса. Опускаемся к пункту IPAll. Удаляем значение в поле TCP Dynamic Ports, оставляем поле пустым, а в TCP Port пишем 1433:

Переходим в Сетевая конфигурация SQL ServerСлужбы SQL Server.

Вызываем свойства службы Браузер SQL Server, переходим во вкладку Служба. В пункте Режим запуска, выставляем параметр Авто, нажимаем ОК:

Настройка MS SQL Server

Перед установкой базы данных необходимо проверить аутентификацию сервера и настроить SQL Server для работы в сети.

Настройка аутентификации сервера

Для работы программ по сети нужно создать в Users Manager учетные записи пользователей. (Меню «Администрирование»).
Перед тем как это сделать, необходимо изменить способ аутентификации в настройках сервера.

Запустите программу «Среда SQL Server Management Studio». Подключитесь к вашему серверу и затем кликните правой кнопкой по имени сервера и выберите пункт «Свойства»


Во вкладке «Безопасность» укажите «Проверка подлинности SQL Server и Windows»


Среда SQL Server Management Studio Express

Нажмите «Ок» и затем перезапустите службу SQL Server.

Политика паролей

Если у Вас установлена Window Server любой версии, то откройте через меню «Пуск» — «Администрирование» — «Локальная политика безопасности».

Во вкладке «Политика паролей» посмотрите на значение пункта «Пароль должен отвечать требованиям …..».Если в строке стоит статус «Включен», то кликните по пункт 2-м щелчком и выберите галочку «Отключен».

После установки базы данных и создания в Users Manager учетных записей политику паролей можно включить обратно.

Настройка MS SQL Server 2005-2017 для работы в сети

После установки SQL Server, по умолчанию, он не доступен по сети. Если SQL сервер не доступен или при запуске программы (Деканат, ПК, Ведомости и т.д) возникает ошибка, то это может свидетельствовать о следующем:

— Не установлен режим подлинности Windows аутентификация;
— Не включена возможность удаленного соединения (для SQL server 2005);
— Не доступен протокол TCP/IP;
— Отсутствует физическое подключение к сети;
— Блокирование сервера Брандмауэром Windows.

После установки SQL Server необходимо настроить его для работы в сети. Настройки зависят от версии сервера.

Выберите в меню Пуск — Программы — Microsoft SQL Server 2005>Средства настройки> Настройка контактной зоны SQL Server.
В открывшейся форме выберите «Настройка контактной зоны для служб и соединений» и нажмите «Сохранить»


Настройка контактной зоны

2.2. Укажите галочку «Использовать TCP/IP и именованные каналы». Нажмите кнопку «Применить».


Настройка контактной зоны

2.3 В списке компонентов перейдите на пункт «SQL Server Browser». Убедитесь, что служба запущена. Укажите режим запуска «Авто» и запустите службу.

Откройте меню «Пуск» – «Все программы» – «Microsoft Sql Server 2008/2012» – «Средства настройки» – «Диспетчер конфигурации SQL Server»

Во вкладке «Службы SQL Server» убедитесь, что служба «SQL Server, обозреватель» запущена. В колонке «Состояние» должно быть значение «Работает», а в колонке «Режим запуска» — «Авто». Также и для службы SQL Server (sqlexpress).

Агент SQL Server можно не включать

Перейдите в пункт «Сетевая конфигурация SQL Server». Проверьте состояние протокола TCP/IP (должна быть состояние «Включено»).


После смены состояния перезапустите службу SQL Server.

Настройка Брэндмаура

Если после выполнения всех перечисленных действий сервер не доступен по сети, то проверьте настройки брандмауэра/антивируса/сетевого экрана.

Если на серверном компьютере включен брандмауэр или установлен сетевой экран (Firewall), то это может препятствовать соединению с сервером.
Для быстрого получения ответа можно временно выключить работу «защитной» программы (не рекомендуется).

Открытые порта 1433 в брандмауэре:

1. Откройте панель управления и выберите пункт Брандмауэр Windows.

2. Перейдите в дополнительные параметры

3. Выберите узел «Правила для входящих подключений» и затем, в правой панели — Создать правило

3. Выберите пункт «Для порта» и нажмите Далее

4. Укажите Протокол TCP и пункт «Определенные локальные порты». В поле укажите порт 1433 и нажмите Далее

Порт 1433

5. В окне выбора профилей оставьте выбранными 3 галочки: доменный, частный, публичный. Нажмите кнопку Далее.

6. Укажите пункт «Разрешить подключение» и нажмите Далее

7. Укажите имя правилу (на свое усмотрение)

Удаление схем и пользователей

Данный пункт может применяться если у Вас уже была установлена БД Деканат. Данные действия надо выполнить, если не удается создать учетные записи программы.

1. Запустите «Среда SQL Server Management Studio»;

2. Откройте и перейдите во вкладку «Деканат» — «Безопасность» — «Схемы»;

3. Удалите следующие схемы: Abit, Dek, VedKaf, Kaf, Plany, Test, GraphGroups;

4. Отройте вкладку «Деканат» — «Безопасность» — «Пользователи»

5. Удалите имена пользователей с именами: Abit, VedKaf, Kaf, Plany, Test, GraphGroups.

Настройка MS SQL Server


Во вкладке «Безопасность» укажите «Проверка подлинности SQL Server и Windows»


Среда SQL Server Management Studio Express

Политика паролей

Настройка MS SQL Server 2005-2017 для работы в сети


Настройка контактной зоны


Настройка контактной зоны


После смены состояния перезапустите службу SQL Server.

Настройка Брэндмаура

Порт 1433

Удаление схем и пользователей

  1. Установка SQL Server 2012 Express
  2. Установка .NET Framework 3.5
  3. Включение TCP/IP
  4. Запуск SQL Server Browser
  5. Разрешение входящих соединений в Брандмауэре Windows
  6. Настройка свойства экземпляра в MS SQL Server Management Studio

1. Запустить программу-установщик с правами администратора, на этапе Установки (Installation) выбрать New SQL Server stand-alone installation or add features to an existing installation (Установку нового экземпляра SQL Server):

2. Затем нужно будет ознакомиться с лицензией и принять ее условия.
3. Далее программа предложит скачать обновления (Product Updates), если такие будут обнаружены на данный момент. На данном шаге я их отклонила (сняла флажок).
4. После нужно выбрать компоненты (Feature Selection). Оставим те, которые отмечены по умолчанию:

5. На следующем этапе Installation Rules указано, что требуется установить .Net Framework 3.5:

6. Чтобы продолжить установку SQL Server, нажмем на кнопку Re-run (Перезапуск) шага Installation Rules. На появившемся шаге Instance Configuration (Конфигурация экземпляра) укажем его имя (можно оставить его по умолчанию):

7. В конфигурации сервера (Server Configuration) оставим все по умолчанию:

8. На следующем шаге конфигурации выберем Смешанный режим аутентификации — Mixed Mode (после установки данный выбор нельзя будет изменить) и укажем пароль для аккаунта sa. Пароль должен содержать буквы и цифры:

Переходим к следующему шагу.
9. На шаге Reporting Services Configuration я выбрала Install Only:

10. На шаге Error Reporting просто нажимаем «Next»:

После того как система уведомит о завершении установки, можно приступать к дальнейшей настройке.

На клиентском компьютере, в SQL Server Management Studio, не обязательно вручную вводить адрес нужного экземпляра БД (поле Server Name). Чтобы созданный нами экземпляр был доступен для выбора, нужно создать еще одно правило в брандмауэре с подобными параметрами, что и предыдущее, но для порта UDP с номером 1434:

Теперь можно подключаться с клиента к данной базе данных.

  • На сервере подключиться в MS SQL Server Management Studio к экземпляру (указав ранее заданный для sa пароль).
  • В свойствах экземпляра, на странице подключений (Connections), убедиться, что стоит флажок у «Allow remote connections to this server»:

В этой статье мы рассмотрим средства SQL Server для обеспечения безопасности и лучшие практики, связанные с настройкой и обеспечением безопасности в этой СУБД.

Содержание:

  • Аутентификация в SQL Server
  • Авторизация в SQL Server
  • Роли приложений
  • Фильтрация данных в SQL Server
  • Схемы в SQL Server
  • Шифрование данных средствами SQL Server
  • Использование Group Managed Service Accounts для SQL Server
  • Оценка уязвимостей SQL Server через SSMS
  • Аудит активности в SQL Server
  • Общие рекомендации по безопасности SQL Server

Для начала вспомним базовые концепции безопасности SQL Server. MSSQL управляет доступом к объектам через аутентификацию и авторизацию.

  • Аутентификация — это процесс входа в SQL Server, когда пользователь отправляет свои данные на сервер. Аутентификация устанавливает личность пользователя, который проходит аутентификацию;
  • Авторизация — это процесс определения того, к каким защищаемым объектам может обращаться пользователь, и какие операции разрешены для этих ресурсов.

Многие объекты SQL Server имеют свои разрешения, которые могут наследоваться от вышестоящего объекта. Разрешения могут быть предоставлены отдельному пользователю, группе или роли.

Аутентификация в SQL Server

Аккаунт SQL Server можно разделить на 2 части: Имя входа и Пользователь.

  • Имя входа – это глобальный логин для всего экземпляра SQL Server. С помощью него вы проходите процесс аутентификации;
  • Пользователь – это участник базы данных, привязанный к определенному Имени Входа.

Например, ваше имя входа на сервер может быть domainusername, а пользователь в базе данных, привязанный к этому имени входа может называться domain_databaseUser. Практически всегда имя входа и пользователь в базе данных совпадают по названию, но нужно иметь в виду что они могут и различаться, иметь разные имена.

SQL Server поддерживает 2 режима аутентификации:

  • Аутентификация Windows (Windows Authentication) – аутентификация осуществляется с помощью системы безопасности Windows. Пользователям, которые уже аутентифицированы в Windows и имеют права на SQL Server не нужно предоставлять дополнительные учетные данные.
  • Смешанный режим аутентификации (Mixed Mode Authentication) – в этом режиме помимо аутентификации Windows поддерживается аутентификация самого SQL Server через логин и пароль.

Microsoft рекомендует использовать аутентификацию Windows, если есть такая возможность. Для аутентификации посредством логина и пароля, данные (логин и пароль) передаются по сети, хоть и в зашифрованном виде. При Windows аутентификации по сети передаётся серия зашифрованных сообщений, в которых не участвует пароль пользователя.

Но некоторые приложения, особенно старые, не поддерживают аутентификацию Windows, поэтому при установке режима аутентификации стоит учитывать какие приложения будут подключаться к серверу.

SQL Server поддерживает три типа Login Name (имен входа):

  • Локальная учетная запись пользователя Windows или учетная запись домена/доверенного домена.
  • Группа Windows. Предоставление доступа локальной группе Windows или группе из AD домена. Позволяет предоставить доступ ко всем пользователям, которые являются членами группы.
  • Логин SQL Server (SQL Server authentication). SQL Server хранит имя пользователя и хэш пароля в базе данных master, используя методы внутренней аутентификации для проверки входа в систему.

SQL Server автоматически интегрируется с Active Directory. Если вы хотите раздать права доменной учетной записи, вам нужно использовать NetBios имя домена и логин учетной записи. Например для пользователя username в домене domain.local будет верным “domainusername”.

типы аутентфикации sql server

Авторизация в SQL Server

Для авторизации SQL Server использует безопасность на основе ролей, которая позволяет назначать разрешения для роли или группы Windows/домена, а не отдельным пользователям. В SQL Server есть встроенные роли сервера и баз данных, у которых есть предопределенный набор разрешений.

В SQL Server есть 3 уровня безопасности, их можно представить, как иерархию от высшего к низшему:

  • Уровень сервера – на этом уровне можно раздать права на базы данных, учетные записи, роли сервера и группы доступности;
  • Уровень базы данных включают в себя схемы, пользователи базы данных, роли базы данных и полнотекстовые каталоги;
  • Уровень схемы включают такие объекты, как таблицы, представления, функции и хранимые процедуры.

Встроенные роли сервера

Роль Описание
sysadmin Участник роли имеет полные права ко всем ресурсам SQL Server.
serveradmin Участники роли могут изменять параметры конфигурации на уровне сервера и выключать сервер.
securityadmin Участники роли управляют логинами и их свойствами. Они могут предоставлять права доступа GRANT, DENY и REVOKE на уровне сервера и на уровне базы данных, если имеют к ней доступ.

securityadmin мало чем отличается от роли sysadmin, потому что участники этой роли потенциально могут получить доступ ко всем ресурсам SQL Server.

processadmin Участники роли могут завершать процессы, запущенные в SQL Server.
setupadmin Участники роли могут добавлять и удалять связанные серверы с помощью TSQL.
bulkadmin Участники роли могут запускать BULK INSERT операции.
diskadmin Участники роли могут управлять устройствами резервного копирования. На практике эта роль практически не применяется.
dbcreator Участники роли могут создавать, изменять, удалять и восстанавливать базы данных.
public Каждый логин SQL Server находится в этой роли. Изменить членство public нельзя. Когда у пользователя нет разрешения для объекта, к которому он получает доступ, пользователь наследует разрешения public роли для этого объекта.

Схема ролей SQL Server:

роли sql server

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

Встроенные роли базы данных

Роль Описание
db_owner Участники роли могут выполнять все действия по настройке и обслуживанию базы данных, включая удаление.
db_securityadmin Участники роли могут менять членство других ролей. Участники этой группы потенциально могут увеличить свои права до db_owner, поэтому стоит считать эту роль эквивалентной db_owner.
db_accessadmin Участники роли могут управлять доступом к базе данных для существующих на сервере логинов.
db_backupoperator Участники роли могут выполнять резервное копирование базы данных.
db_ddladmin Участники роли могут выполнять любую DDL команду в базе данных.
db_datawriter Участники роли могут создавать/изменять/удалять данные во всех пользовательских таблицах в базе данных.
db_datareader Участники роли могут считывать данные со всех пользовательских таблиц.
db_denydatawriter
db_denydatareader Участникам роли запрещен доступ к пользовательским таблицам базы данных.

Так же стоит отдельно выделить специальные роли в базе данных msdb.

db_ssisadmin

db_ssisoperator

db_ssisltduser

Участники этих ролей могут администрировать и использовать SSIS (SQL Server Integration Services).
dc_admin

dc_operator

dc_proxy

Участники этих ролей могут администрировать и использовать сборщик данных.
PolicyAdministratorRole Участники этой роли имеют полный доступ к политикам SQL Server
ServerGroupAdministratorRole

ServerGroupReaderRole

Участники этих ролей имеют полный доступ к зарегистрированным группам серверов.
SQLAgentUserRole SQLAgentReaderRole SQLAgentOperatorRole Участники этих ролей имеют полный доступ заданиям агента SQL Server

Заметка: имейте в виду, что участники ролей dc_ssisadmin и dc_admin могут повысить свои права до уровня sysadmin.

Схема по встроенным ролям баз данных в SQL Server:

роли и права на базы данных в sql server

Роли приложений

Роль приложения – это объект базы данных (такой же, как и обычная роль базы данных), который позволяет с помощью аутентификации через пароль менять контекст безопасности в базе данных. В отличие от ролей баз данных, роли приложений по умолчанию находятся в неактивном состоянии и активируются, когда приложение выполняет процедуру sp_setapprole и вводит соответствующий пароль.

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

Фильтрация данных в SQL Server

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

Например, можно предоставить пользователю права только на SELECT из представления и запретить прямой доступ к таблицам, которые используются в представлении. Таким образом вы предоставите доступ только к части данных из таблицы, задав фильтр where в представлении.

Фильтрация данных через Row-Level Security

Безопасность на уровне строк или Row-Level Security (RLS) позволяет фильтровать данные таблицы для разных пользователей по настраиваемому фильтру. Это осуществляется через SECURITY POLICY в T-SQL

На данном скриншоте политика настраивается таким образом, что пользователь Sales1 будет видеть строки таблицы, в которых значение столбца Sales равняется имени пользователя (Sales1), а пользователь Manager будет видеть все строки.

tsql - фильтрация данных в sql server

Схемы в SQL Server

У некоторых объектов SQL Server (таблицы, процедуры, представления, функции) есть схема. Схемы можно представить, как контейнеры для различных объектов (или пространство имён/namespace, если вы знакомы с программированием).

Например, если у пользователя есть права на select из схемы, то пользователь так же может делать select со всех объектов этой схемы. То есть объекты, принадлежащие схеме, наследуют её разрешения. Когда пользователи создают объекты в схеме, объекты принадлежат владельцу схемы, а не пользователю. Разрешения не наследуются от схемы пользователями. Т.е. у пользователей со схемой dbo по умолчанию, нет разрешений которые предоставлены этой схеме – они должны быть явно указаны.

Главное отличие схем от ролей в том, что разрешения на схемы могут быть предоставлены ролям. Например, у роли testrole могут быть разрешения select со схемы schema1 и разрешения на select/update на схеме schema2. Объект может принадлежать всего одной схеме, но права на него могут быть у нескольких ролей.

Встроенные схемы

В SQL Server есть встроенные системные схемы:

  • dbo
  • guest
  • sys
  • INFORMATION_SCHEMA

Схема dbo является схемой по умолчанию для новых баз данных, а пользователь dbo является владельцем схемы dbo. По умолчанию, новые пользователи в базе данных имеют схему dbo в качестве схемы по умолчанию. Другие встроенные схемы нужны для системных объектов SQL Server.

Шифрование данных средствами SQL Server

SQL Server может шифровать данные, процедуры и соединения с сервером. Шифрование возможно с использованием сертификата, асимметричного или симметричного ключа. В SQL Server используется иерархичная модель шифрования, то есть каждый слой иерархии шифрует слой под ним. Поддерживаются все известные и популярные алгоритмы шифрования. Для реализации алгоритмов шифрования используется Windows Crypto API.

Самыми распространенными типами шифрования являются TDE (Прозрачное шифрование данных) и Always Encrypted.

Прозрачное шифрование данных

Прозрачное шифрование данных или Transparent Data Encryption шифрует всю базу целиком. При краже физического носителя или .mdf/.ldf файла, злоумышленник не сможет получить доступ к информации в базе данных.

Диаграмма, для того чтобы представить весь процесс

шифрование в sql server

Базовое шифрование базы данных через T-SQL:

USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password';
go
CREATE CERTIFICATE ServerCert WITH SUBJECT = 'DEK Certificate';
go
USE AdventureWorks2012;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE ServerCert;
GO
ALTER DATABASE AdventureWorks2012
SET ENCRYPTION ON;
GO

Always Encrypted

Эта технология позволяет хранить шифрованные данные в SQL Server без передачи ключей шифрования самому SQL Server. Always Encrypted так же как и TDE шифрует данные в базе данных, но не на уровне базы, а на уровне столбца.

Always Encrypted шифрование sql server

Для шифрования Always Encrypted использует 2 ключа:

  • Column Encryption Key (CEK)
  • Column Master Key (CMK)

Все процессы шифрования и дешифрования данных происходят на клиенте, в базе данных хранятся только зашифрованное значение ключа шифрования (CEK).

Always Encrypted так же позволяет ограничить доступ к данным даже для DBA, таким образом давая возможность не беспокоиться о том, что администратор получит доступ к данным, к которым не должен.

Когда стоит использовать шифрование SQL Server?

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

Если пользователи обращаются к данным через общедоступную сеть, то для обеспечения безопасности может потребоваться шифрование, но если данные передаются по защищенной интрасети или ВПН, то необходимости в шифровании данных нет. Так же стоит рассмотреть возможность шифрования данных, если есть угроза кражи физического носителя с базами данных.

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

Использование Group Managed Service Accounts для SQL Server

Групповые управляемые учетные записи службы или gMSA – это специальная учетная запись, которая автоматически управляется Active Directory. gMSA это развитие технологии MSA, так как MSA было невозможно использовать в кластерных сценариях.

gMSA исключает необходимость вручную менять пароли для учетной записи. При настройке gMSA вы указываете на каких серверах будет работать gMSA аккаунт, как часто Active Directory будет менять пароль, и кто имеет право на просмотр пароля. На серверах, на которых будет установлен gMSA не нужно указывать пароль при указании соответствующей учетной записи gMSA.

Имейте в виду, что версия Windows Server для работы с gMSA должна быть не ниже 2012.

Оценка уязвимостей SQL Server через SSMS

В SQL Server Management Studio есть функция оценки уязвимостей для базы данных.

SQL Server проверка уязвимостей

Выберите базу данных -> Tasks -> Vulnerability Assessment -> Scan For Vulnerabilities.

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

обнаруженние уязвимостей в sql server

Обязательно стоит пройтись этим сканнером по вашим базам данных. Он может выявить скрытые проблемы, которых не видно на первый взгляд.

Аудит активности в SQL Server

SQL Server предоставляет возможность вести аудит любой пользовательской активности в экземпляре сервера.

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

Рассмотрим базовую настройку аудита:

В SSMS, во вкладке Security -> Audits создайте новый аудит.

настройка аудита в sql server

Затем, для аудита нужно создать Спецификацию (Audit Specification), для указания событий, которые будут отслеживаться.

настройка аудита в mssql

После того как вы создадите и активируете аудит, в журнале аудита можно будет посмотреть события, которые зафиксированы процедурой аудита.

событие ауюита в sql server

Общие рекомендации по безопасности SQL Server

Всегда следуйте принципу наименьших привилегий. В том числе настройте аккаунт службы SQL Server с помощью gMSA. Ни в коем случае не используйте доменный аккаунт с привилегиями администратора домена.

Принцип наименьших привилегий

Когда вы заводите новых пользователей, рекомендуется использовать принцип LUA (Least-privileged User Account или Аккаунт с Наименьшими Правами). Этот принцип является важной частью безопасности сервера и данных.

Для пользователей с административными правами рекомендуется выдавать разрешения только на те операции, которые им будет необходимы. Встроенные серверные роли стоит использовать только тогда, когда набор их разрешений полностью совпадает с задачами пользователя.

Предоставление прав ролям, а не пользователям

Когда пользователей становится много, управлять их разрешениями становится сложнее, и также становится сложнее не допустить ошибки в предоставлении прав.

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

Можно предоставить права пользователю на схему. В этом случае пользователи сразу смогут работать с вновь созданными объектами в этой схеме, в отличии от ролей, когда при создании нового объекта, роли нужно будет раздать на него права.

1. Overview

SQL Server authentication is recommended for connecting Dundas BI to its application and warehouse databases for security reasons. This article explains how to enable SQL Server authentication, and how to use it with your Dundas BI instance.

This applies when installing or upgrading Dundas BI when it uses Microsoft SQL Server to store its own data. Within Dundas BI, users can then connect, analyze, and visualize data from a variety of other data sources or use other authentication methods.

Important

Before reading this article, you should have a basic understanding of using SQL Server Management Studio.

2. Enabling SQL Server Authentication through SQL Management Studio

To enable SQL Server Authentication for your instance:

  1. Open SQL Server Management Studio.
  2. Connect to the SQL Server instance you would like to use for Dundas BI.

    Connecting to a database server (e.g., localhost)

    Connecting to a database server (e.g., localhost)
  3. In the Object Explorer, right-click the server and click Properties.

    Server properties

    Server properties
  4. On the Security page under Server authentication, select SQL Server and Windows Authentication mode and then click OK.

    Turn on SQL Server authentication mode

    Turn on SQL Server authentication mode
  5. In the Object Explorer, right-click your server and click Restart. If the SQL Server Agent is running, it must also be restarted.

    Restart SQL Server

    Restart SQL Server

3. Using SQL Server Authentication in Dundas BI

Certain database permissions are needed for the user Dundas BI connects as while deploying a Dundas BI instance, which can be reduced when deploying is finished.

3.1. Before deploying an instance

3.1.1. Creating a SQL Server authentication user

During the deployment of an instance with new databases, the user must have the SysAdmin role, or else all of the following: DbCreator, DiskAdmin, ProcessAdmin, and SecurityAdmin.

Create a user like this in SQL Management Studio:

  1. Open SQL Server Management Studio.
  2. Connect to the SQL Server instance you would like to use for Dundas BI.
  3. Expand the Security folder, right-click on the Logins folder and choose New Login….

    Create SQL Server authentication login from context menu

    Create SQL Server authentication login from context menu
  4. Enter the login name as DundasBIUser, select SQL Server authentication, and enter the Password.

    Create SQL Server authentication login

    Create SQL Server authentication login
  5. Click the Server Roles page and enable the SysAdmin role, or a combination of DbCreator, DiskAdmin, ProcessAdmin, and SecurityAdmin roles.

    Add SysAdmin role to login

    Add SysAdmin role to login

3.1.2. Specifying the SQL Server authentication user

Now that the SQL Server authentication user has been created, use these credentials when you deploy Dundas BI and set up the application database connection.

Specifying credentials for SQL Server authentication

Specifying credentials for SQL Server authentication

3.2. After deploying an instance

After deploying, it is possible to remove the SysAdmin role from this user. For regular operation, the user will only require the dbo default schema and the db_owner role membership.

The SysAdmin role will be required again when attempting to upgrade an instance.

4. Changing an existing instance to use SQL Server authentication

Follow the steps below to change an existing instance to use SQL Server authentication for its application and warehouse databases.

4.1. Application database

Open a text editor such as Notepad as an administrator, by right-clicking its shortcut and choosing Run as administrator.

Open the Dundas BI configuration file, located at [InstanceRoot]wwwBIWebsiteApp_Datadbi.config.

Edit the connection string to use SQL Server authentication by specifying the User ID and Password. After saving, recycle the application pool in IIS or restart the Linux service for Dundas BI’s website.

Updated application database connection string

Updated application database connection string

Note

To change the credentials when the connection string is encrypted, first decrypt the connection string using the dt command line tool, then update the credentials. To resume the secure state, encrypt the connection string when you have updated the credentials.

4.2. Warehouse database

The warehouse database connection is defined in Dundas BI’s configuration settings:

Log into Dundas BI as an administrator, and click the Admin icon in the main menu on the left.

Click to expand Setup and then click Config.

Find or search for the Data Warehouse Connection String setting, located in the General category, and edit it to also use SQL Server authentication.

Updating the warehouse connection string in Dundas BI

Updating the warehouse connection string in Dundas BI

5. See also

  • Microsoft Docs: SQL Server Management Studio
  • Microsoft Docs: Choose an Authentication Mode
  • Installing Dundas BI
  • Dundas BI config file
  • Configuration settings
  • Dundas BI — System Requirements

Содержание статьи:

    • SQL-сервер не найден или недоступен, ошибки соединения с SQL-сервером
      • Ошибка SQL-сервера 26
      • Ошибка SQL-сервера 18456
      • Не удалось запустить SQL-server — код ошибки 3417
    • Повреждена база данных
      • Код ошибки SQL-сервера 945
      • Код ошибки SQL-сервера 5172
      • Ошибка SQL-сервера 823
      • Ошибка SQL-сервера 8946
    • Другие ошибки SQL Server
      • Код ошибки SQL-сервера 1814
      • Код ошибки SQL-сервера 1067
      • SQL-сервер запускается, но работает слишком медленно

SQL-сервер не найден или недоступен, ошибки соединения с SQL-сервером

  • Если SQL-сервер не найден, убедитесь, что ваш экземпляр SQL-сервера действительно установлен и запущен. Для этого зайдите на компьютер, где он установлен, запустите диспетчер конфигурации SQL и проверьте, есть ли там тот экземпляр, к которому вы пытаетесь подключиться и запущен ли он. Нелишним будет также получить отчет об обнаружении компонентов SQL-серверов.
  • Если вы проделали п1. и не обнаружили источник проблемы, возможно, неверно указан IP-адрес компьютера или номер порта TCP. Перепроверьте их настройки.
  • Причиной того, что невозможно подключиться к SQL-серверу, также может быть сеть, убедитесь, что компьютер с SQL-сервером доступен по сети.
  • Проверьте, может ли клиентское приложение, установленное на том же компьютере, что и сервер, подключиться к SQL-серверу. Запустите SQL Server Management Studio(SSMS), в диалоговом окне “Подключиться к серверу” выберите тип сервера Database Engine, укажите способ аутентификации “Аутентификация Windows”, введите имя компьютера и экземпляра SQL-сервера. Проверьте подключение.

Обратите внимание, что многие сообщения об ошибках могут быть не показаны или не содержат достаточной информации для устранения проблемы. Это сделано из соображений безопасности, чтобы при попытке взлома злоумышленники не могли получить информацию об SQL-сервере. Полные сведения содержатся в логе ошибок, который обычно хранится по адресу C:Program FilesMicrosoft SQL ServerMSSQL13.MSSQLSERVERMSSQLLogERRORLOG, или там, куда его поместил администратор системы.

Ошибка SQL-сервера 26

Одна из наиболее часто встречающихся ошибок подключения к SQL-серверу, обычно связана с тем, что в настройках SQL-сервера не разрешены или ограничены удаленные соединения. Чтобы это исправить, попробуйте:

  • в SSMS в настройках SQL-сервера включите аутентификацию Windows
  • для брандмауэра Windows  создайте новое правило, которое разрешает подключение для всех программ и протоколов с указанного IP-адреса
  • убедитесь, что запущена служба SQL Server Browser

Ошибка SQL-сервера 18456

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

Не удалось запустить SQL-server — код ошибки 3417

Возникает в случае, если были изменены настройки Windows или перемещена папка с файлами MSSQL.

  • зайдите в C:Program FilesMicrosoft SQLServerMSSQL.1MSSqLData — БезопасностьНастройки доступа — Учетная запись сетевой службы — добавьте учетную запись сетевой службы
  • проверьте, что MDF-файл не сжимается. Если это не так, отключите “Сжимать содержимое для экономии места на диске” в свойствах файла

Иногда ни один из этих способов не помогает, это значит, что файлы БД повреждены и ее придется восстанавливать из резервной копии.

Повреждена база данных

Код ошибки SQL-сервера 945

Ошибка 945 возникает, когда БД SQL-сервера помечена как IsShutdown. Проверьте, достаточно ли места на диске, достаточно ли прав у учетной записи для операций с БД, файлы MDF и LDF не должны быть помечены “Только для чтения”.

Код ошибки SQL-сервера 5172

SQL-сервер хранит свою физическую БД в первичном файле, в котором информация разбита постранично. Первая страница содержит информацию о заголовке mdf-файла и называется страницей заголовка. Она состоит из разнообразной информации о БД, такой как размер файла, подпись и т.д. В процессе прикрепления MDF на SQL-сервере часто возникает ошибка 5172. Это в основном происходит, если MDF-файл поврежден, информация в его заголовке тоже и соответственно сложно добраться до данных. Причиной может быть вирус, аварийное выключение системы, ошибка оборудования.

Ошибка SQL-сервера 823

SQL использует API Windows для операций ввода-вывода, но кроме завершения этих операций SQL проверяет все ошибки обращений к API. Если эти обращения несовместимы с ОС, появляется ошибка 823. Сообщение об ошибке 823 означает, что существует проблема с базовым оборудованием для хранения данных или с драйвером, который находится на пути запроса ввода-вывода. Пользователи могут столкнуться с этой ошибкой, если в файловой системе есть противоречия или поврежден файл базы данных.

Ошибка SQL-сервера 8946

Основной причиной ошибки 8946 так же, как и для 5172, является повреждение заголовков страниц БД SQL вследствие сбоя питания, вирусной атаки, отказа оборудования — SQL-сервер больше не может прочесть эти страницы.

Перечисленные ошибки 945, 5172, 823, 8946 можно устранить двумя методами:

  • если у вас есть свежая резервная копия базы — восстановить базу из этой копии
  • можно попробовать использовать специализированное ПО, такое как SQL Recovery Tool, чтобы восстановить поврежденные файлы

Желательно определить, что именно привело к возникновению ошибок и принять меры, чтобы это не повторялось — заменить плохо работающее оборудование, повысить информационную безопасность.

Другие ошибки SQL

Код ошибки SQL-сервера 1814

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

Код ошибки SQL-сервера 1067

Эта ошибка может возникать по разным причинам. Наиболее часто оказывается, что повреждены или отсутствуют конфигурационные файлы, SQL-сервер обращается к поврежденным системным файлам, ошибочные данные пользователя, нет информации про лицензию. В самых тяжелых случаях придется переустанавливать SQL-сервер. Но иногда помогает восстановление поврежденных файлов или изменение настроек SQL-сервера — вы можете создать новую учетную запись в домене и использовать ее для службы MSSQL.

SQL-сервер запускается, но работает слишком медленно

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

Мы работаем с разными версиями SQL-сервера уже много лет, знакомы со всевозможными инструкциями SQL-сервера, видели самые разные варианты его настройки и использования на проектах у своих клиентов. В целом мы можем выделить четыре основных источника неполадок:

  • Индексы — причина проблем номер один. Неправильные индексы, отсутствующие индексы, слишком много индексов и подобное. Чаще всего при проблеме с индексами пользователи или администраторы базы данных не получают сообщения об ошибке, они просто видят, что база работает очень медленно и докопаться до причин бывает очень нелегко
  • изначально плохая архитектура сервера баз данных — ошибка, которую очень сложно и дорого исправлять на этапе, когда база уже используется
  • плохой код, в котором возможны блокировки и тупиковые места
  • использование конфигурации по умолчанию,

Если у вас не получается устранить ошибки сервера SQL-server самостоятельно, если они появляются снова и снова, то скорее всего в основе лежит одна из этих причин. В таком случае — если у вас произошла ошибка с SQL сервером, ваше ПО не видит SQL-сервер, либо нужно развернуть кластер SQL-серверов — вы всегда можете обратиться за консультацией и технической поддержкой к специалистам Интегруса, отправив заявку с сайта, написав на e-mail, либо позвонив в колл-центр нашей компании.

Присоединяйтесь к нам,

чтобы получать чек-листы, реальные кейсы, а также
обзоры сервисов раз в 2 недели.

Понравилась статья? Поделить с друзьями:
  • В powershell нет microsoft windows store
  • В outlook не настроена индексация с использованием службы windows search
  • В ms windows изолированные web приложения исполняются в процессе
  • В iis нет проверки подлинности windows
  • В bootcamp нет пункта создать диск установки windows