Sql server connection windows


First published on MSDN on Jan 29, 2010

We sometimes run into scenarios where an application or a windows service running under Local System Account needs to connect to SQL Server and encounter authentication Errors/issues with SQL Server. In SQL Developer support team, we have worked on customer issues where SCCM (System Center Configuration Manager), SCOM (System Center Operations Manager) or a 3

rd

party service or application runs under Local System account and gets Windows authentication or Kerberos errors like below (or variations of these) while connecting to SQL Server-

Login failed for user ‘NT AUTHORITY\SYSTEM’

Login Failed for ‘DomainName\MachineName$’

Login failed for user ‘NT AUTHORITY\ANONYMOUS LOGON’

For Windows built-in accounts like Local System, the correct syntax, setup and troubleshooting steps are not always obvious. So In this blog, we will provide a few setup and troubleshooting tips for the scenarios/issues mentioned above. Needless to say that we will focus only on those scenarios where we use

Windows authentication

(integrated security=true, integrated security=SSPI or trusted connection=true etc) in the application connection string for SQL Server. Also, we will NOT delve into ‘Whether we do or don’t recommend using Local System’ for service account that needs remote connectivity/access to SQL server.


What is Local System Account?



Local system account is a built-in account which has extensive privileges on the local computer. The local system account is an internal windows account and does not show up in User manager, cannot be added to any groups, and cannot have user rights assigned to it. On the other hand, the system account does show up on an NTFS volume in File Manager in the Permissions portion of the Security menu. The msdn link below talks in-depth about this account.

Local System Account

http://msdn.microsoft.com/en-us/library/ms684190(VS.85).aspx


Setting up access for Local System account in SQL Server:



In order for a windows service or application that runs under Local System account to connect to SQL Server, the Local System account (just like any other account) needs to be granted a login privilege and other appropriate permissions in SQL Server.


Scenario 1: If the windows service/application and SQL Server are on the same machine-



We need to grant login privilege and appropriate role for the ‘NT Authority\System’ account on the SQL Server (or Windows service) machine. For example, to create a login for NT Authority\System and grant it ‘sysadmin’ role we can run the T-SQL statement below in SQL Server Management Studio-

CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS WITH

DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]

Go

EXEC sp_addsrvrolemember ‘NT AUTHORITY\SYSTEM’, ‘sysadmin’;

GO

The login and the role can also be created from SQL Server Management Studio.

1. In SQL Server Management Studio, open Object Explorer and connect to the server instance in which to create the new login.

2. Right-click the Security folder under this instance, point to New, and then click Login.

3. On the General page, enter NT AUTHORITY\SYSTEM in the login name box.

4. Select Windows Authentication.

5. On the Server Roles Page, select ‘sysadmin’ and click OK


NOTE: We don’t need to necessarily grant sysadmin role – this is just an example. The exact role should be determined based on what the application/service requires.

To verify the newly created login, we can run the query below:

SELECT * FROM sys.server_principals WHERE name LIKE ‘NT AUTHORITY\SYSTEM%’


Scenario 2: If the windows service/application and SQL Server are on different machines-



We need to grant the above privileges to the machine account where the windows service runs, because that is the credential passed over the network. For example, if the windows service or application is running on a machine called ‘MyMachine’ in domain ‘MyDomain’ then credential MyDoman\MyMachine$ is passed over the network to SQL Server.

To create a login for the machine account in SQL Server and make it sysadmin, we can execute the statement below:

CREATE LOGIN [MyDoman\MyMachine$] FROM WINDOWS

DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]

Go

EXEC sp_addsrvrolemember ‘ MyDoman\MyMachine$’, ‘sysadmin’;

GO

To verify the newly created login, we can run the query below:

SELECT * FROM sys.server_principals WHERE name LIKE ‘ MyDoman\MyMachine%’


Testing connection in the context of Local System Account:



After successfully creating login for Local System account in SQL Server, we now need to test connectivity to SQL Server using this account. Usually, we would use a client tool like UDL (Universal Data Link) file or SSMS (SQL Server Management Studio) to test connectivity to SQL Server using windows authentication or SQL login.

The challenge here is – how do we run a UDL file or SSMS under local system account? These applications would normally run under the logged in windows user account. It could be possible that the issue we are troubleshooting does not reproduce when we run the test with logged in Windows user account. Fortunately, there are a several tools that we can take advantage of to accomplish this. We will list a few of them —

#1:

Use AT command to open a command window running under local system account. The AT command is a DOS Scheduler task command which by default runs under Local System account.

The simple syntax of AT command can be used to open a command window running under Local System account:

at time /interactive command

For example, if the current system time is 10:52 am, we can run AT to schedule a job one/two minute later, like below –

C:\test>at 10:54 /interactive sqlwb.exe

The above command will open SSMS (SQL Server 2005 Management Studio) with Local System account context on a Windows 2003 32-bit machine at 10:54

But on Windows Vista and above, due to security enhancements, this task will not run interactively but it will add a new process and may not be useful for live troubleshooting –that’s why our preferred tool is

PsExec

and this tool will work on all Windows OS.

#2 (preferred):

PsExec is a tool from Sysinternal, which can be found here:

http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

For example, if we want to run SQL Server 2005 Management Studio with Local System context, we can run the command below-

C:\test>psexec -i -s sqlwb.exe

Executing “Psexec.exe -i -s cmd.exe” or “C:\test>at 10:54 /interactive cmd.exe” from command prompt will open another command window on the machine running under local system account.

We can also open a command window on a remote machine by adding

\\remotemachine

option before the -i  attribute,  provided we have enough privileges. Then in the newly created command window we need to change the directory to the location where we have the UDL file (or any other executable) and then type the UDL file name to open it. After we open UDL file in this way, we can verify in the task manager that the executable rundll32.exe is running under SYSTEM account.

Once we are able to test connection from UDL/SSMS with Local System context (running udl/SSMS with psexec/AT and selecting windows authentication) we can carry on troubleshooting authentication issues based on the error message we get.


Common authentication errors

Some of the errors encountered when connecting with Local system account are:

1.         Login failed for user ‘NT AUTHORITY\SYSTEM’.

Login failed for user ‘MyDoman\MyMachine$’

This typically is a permission issue –we need to create a valid login for ‘NT AUTHORITY\SYSTEM’ or ‘MyDoman\MyMachine$’ (as mentioned in the section ‘Setting up access for Local System account in SQL Server’) and ensure necessary role membership in SQL Server for the same.

2.         Login failed for user ‘NT AUTHORITY\ANONYMOUS LOGON’.

Login failed for user (null)

Cannot generate SSPI context

These errors indicate Kerberos/NTLM issues with SQL Server and the troubleshooting steps should be same as all Kerberos issues in SQL server –which we are not going to delve into in this blog. There is plenty of documentation out there that we can reference to troubleshoot Kerberos errors. Here are a few favorite ones –

http://www.microsoft.com/downloads/details.aspx?FamilyID=99b0f94f-e28a-4726-bffe-2f64ae2f59a2&displaylang=en

http://support.microsoft.com/kb/811889/en-us

In the context of our discussion, a few points to keep in mind are –

A.      If the windows service that is running under Local System and connecting to SQL Server is a middle tier service (for example, a 3-tier web application or a linked server between 2 SQL Server instances), then we need to add SPNs for machine Account in Active directory and also set ‘trusted for delegation’ property on this machine Account.

For example, if the windows service (running under Local System) is located on a machine Name MyMachine and is a middle tier service in our troubleshooting scenario, then we need to look up the account MyMachine in Active Directory and add SPNs for the account MyMachine and also set ‘trusted for delegation’ on this account for Kerberos delegation to work properly.

B.      If we consider purging tickets on the machine where the windows service is running, we need to run tools like KerbTray or klist in the context of Local System Account – using PsExcec, AT etc

3.  Login failed. The login is from an untrusted domain and cannot be used with Windows authentication.

We need to check the ‘Local Security Policy-> User Rights Assignments on the SQL Server machine and ensure that the account MyDomain\MyMachine$ (MyMachine is the Netbios Name of the machine where the windows service or application is running with Local System Account) is not present under ‘Deny Access to this computer from the network’.

Author : Aruna(MSFT), SQL Developer Engineer & Azim(MSFT) , SQL Developer Technical Lead , Microsoft

Reviewed by : Snehadeep (MSFT) , SQL Developer Engineer & Praveen M,SQL Developer Technical Lead, Microsoft

В этой статье мы рассмотрим популярные инструменты, T-SQL запросы и скрипты для обнаружения и решения различных возможных проблем с производительностью SQL Server. Эта статья поможет вам разобраться, когда вашему SQL Server недостаточно ресурсов (памяти, CPU, IOPs дисков), найти блокировки, выявить медленные запросы. Посмотрим какие есть встроенные инструменты и бесплатные сторонние скрипты и утилиты для анализа состояния Microsoft SQL Server.

Содержание:

  • Инструменты для диагностики SQL Server
  • Обнаружение и решение проблем с производительностью SQL Server

Инструменты для диагностики SQL Server

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

  • T-SQL — самый мощный, простой и незаменимый инструмент для поиска проблем и анализом производительности SQL Server. Практически все другие инструменты для работы с SQL Server используют T-SQL. Нет ничего такого, чтобы вы не смогли сделать с помощью T-SQL.
  • SQL Server Management Studio — без SSMS практически невозможно работать с SQL Server. С помощью SSMS вы можете посмотреть Activity monitor, проанализировать план запроса, посмотреть параметры сервера или базы данных и многие другие вещи.
  • Журналы ошибок SQL Server и Windows – если что-то идёт не так, журнал ошибок — это первое место, куда смотрит системный администратор. Журнал ошибок SQL Server можно посмотреть через SSMS. Журналы Windows можно посмотреть через оснастку eventvwr.msc.
  • Монитор ресурсов Windows — resmon.exe незаменимый инструмент Windows для быстрой оценки состояния ресурсов сервера. Использование оперативной памяти и процессора можно посмотреть и через Диспетчер задач, но детальное использование сети и жесткого диска можно посмотреть только через resmon и perfmon.
  • Системный монитор Windows (Performance Monitor) — Perfmon.exe это основное средство мониторинга Windows, он содержит в себе разнообразные “счетчики”, как системных метрик, так и приложений, включая SQL Server. Обычно счетчики perfmon обрабатывают с помощью других систем мониторинга, например, Zabbix, так как в perfmon неудобно хранить и смотреть данные за прошедшее время.
    sql server счетчики в performance monitor

  • Сторонние приложения — существует много платных и бесплатных приложений для мониторинга SQL Server. Например, одним из бесплатных приложений является dbForge Monitor от компании Devart. Приложение устанавливается как дополнение к SSMS и позволяет выводить очень удобный дашборд для отображения текущего состояния вашего SQL Server (информация об использовании памяти, CPU, нагрузках, блокировках, процессах, информацию о бэкапах, “тяжелых SQL запросах”, производительности дисковой подсистемы и т.д.).
    dbForge Monitor - удобный dashboard для sql server

  • Скрипты Brentozar – это популярное решение для диагностики настроек и работоспособности SQL Server. У brentozar есть много скриптов для различных задач, но для диагностики нас интересует “sp_blitz”. Скачать можно бесплатно с официального сайта https://www.brentozar.com/blitz/. Запустите sp_Blitz.sql чтобы установить необходимые процедуры и выполните их exec sp_blitz для диагностики. Этот инструмент бесплатный и поддерживается сообществом SQL Server. Sp_blitz определит все популярные проблемы с вашим сервером и посоветует как их решить.
    sp_blitz , скрипты brentozar для sql server

  • Наборы T-SQL скриптов — удобно иметь под рукой коллекции разнообразных T-SQL запросов для диагностики SQL Server, так как не всегда есть время писать собственные запросы, лучше вооружиться заранее. Ниже перечислены ссылки на полезные T-SQL/PowerShell запросы, которые я часто использую при диагностике и тюнинге MS SQL:
    • https://github.com/SQLadmin/AwesomeSQLServer — набор запросов для мониторинга CPU/RAM/Disk IO и прочих параметров.
    • https://github.com/dgavrikov/databases_scripts/tree/master/SQL%20Server – много полезных скриптов и лайфхаков
    • https://github.com/ktaranov/sqlserver-kit — Скрипты и полезная информация. Много примеров работы с SQL Server через PowerShell

Обнаружение и решение проблем с производительностью SQL Server

Самой распространенной проблемой с которой сталкивается системный администратор, работающий с SQL Server, это жалобы пользователей на производительность запросов и самого сервера: “тормозит”, “долго выполняется запрос“, и так далее.

Прежде всего нужно убедиться, что серверу хватает ресурсов. Рассмотрим, как в SQL Server быстро проанализировать использование памяти, CPU, дисков и наличие блокировок.

Анализ использования оперативной памяти SQL Server

Для начала нужно определить сколько памяти доступно SQL Server. Для этого запустите SSMS (SQL Server Management Studio), зайдите на сервер и зайдите в свойства сервера (ПКМ по названию сервера в Обозревателе объектов).

настройка использования оперативной памяти в sql server

Сам по себе доступный объём RAM вам ничего не скажет. Нужно сравнить это число с используемой памятью в Диспетчере Задач и самим движком SQL Server с помощью DMV.

В Диспетчере задач, во вкладке Подробности, найдите sqlservr.exe и посмотрите сколько оперативной памяти использует этот процесс.

  • Если на сервере, например, 128 GB оперативной памяти, а процесс sqlservr.exe использует 60 GB и ограничений по RAM у SQL Server нет, то оперативной памяти вам хватает.
  • Если SQL Server использует 80-90% RAM от заданной или максимальной, то в таком случае нужно смотреть DMV. Имейте в виду, что sqlservr.exe не сможет использовать всю оперативную память. Если на сервере 128 GB, то sqlservr.exe может использовать только 80-90% (100-110 GB), так как остальная память резервируется для операционной системы.

Имейте в виду, что процесс SQL Server’a не отдаёт оперативную память обратно в систему. Например, ваш SQL Server обычно использует 20 GB памяти, но при месячном отчете он увеличивает потребление до 100 GB, и даже когда вычисление отчета закончится и сервер будет работать в прежнем режиме, процесс SQL Server’a всё равно будет использовать 100 GB до перезагрузки службы.

Даже если вы уверены, что оперативной памяти серверу хватает, не будет лишним точно знать объём потребляемой RAM.

Узнать реальное использование RAM можно с помощью Dynamic Management Views. DMV это административные вьюверы (представления). С помощью DMV можно диагностировать практически любую проблему в SQL Server.

Посмотрим sys.dm_os_sys_memory, для удобства используем запрос:

SELECT total_physical_memory_kb / 1024 AS

[Total Physical Memory],

available_physical_memory_kb / 1024 AS

[Available Physical Memory],

total_page_file_kb / 1024 AS

[Total Page File (MB)],

available_page_file_kb / 1024 AS

[Available Page File (MB)],

100 - ( 100 * Cast(available_physical_memory_kb AS DECIMAL(18, 3)) / Cast

(

 total_physical_memory_kb AS DECIMAL(18, 3)) ) AS

'Percentage Used',

system_memory_state_desc AS

[Memory State]

FROM sys.dm_os_sys_memory;

Рассмотрим каждый выводимый параметр:

  1. [Total Physical Memory] – объём оперативной памяти доступный в операционной системе. На некоторых серверах может показывать немного больше реально установленной.
  2. [Available Physical Memory] – объём оперативной памяти доступный для SQL Server, без учета уже захваченной SQL Server.
  3. [Total Page File (MB)] – Объём “Сommit limit”. Commit Limit = Оперативная память + все файлы подкачки. То есть, если у вас на сервере 32 GB оперативной памяти и 16 GB файл подкачки, commit limit будет 48 GB.
  4. [Available Page File (MB)] – Объём файла подкачки.
  5. Percentage Used – процент занятой оперативной памяти. Такого параметра нет в самом sys.dm_os_sys_memory, но он считается по формуле available_physical_memory_kb / total_physical_memory_kb
  6. [Memory State] – Состояние RAM. Поле system_memory_state_desc содержит в себе состояние потребления оперативной памяти в виде текста. Значение этого поля считается исходя из других двух: system_low_memory_signal_state и system_high_memory_signal_state. Вы можете выбирать их напрямую, если вам нужен Boolean/bit формат данных. Для ознакомления со всеми полями sys.dm_os_sys_memory ознакомьтесь с документацией https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-sys-memory-transact-sql?view=sql-server-ver15

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

Если Вам нужно убедиться, что серверу хватает RAM, вы можете смотреть только на поля system_low_memory_signal_state, system_high_memory_signal_state и system_memory_state_desc. Если system_low_memory_signal_state = 1, то серверу явно не хватает оперативной памяти.

Загрузка процессора в SQL Server

Нагрузку на процессор определить проще, так как это можно сделать в Диспетчере задач. Чтобы узнать текущую нагрузку на процессор, найдите в Диспетчере задач процесс sqlservr.exe

sqlservr.exe использование CPU

Если вы хотите узнать нагрузку за прошедшее время, можно воспользоваться запросом:

Не забудьте поменять @lastNMin на нужное вам число в минутах.

DECLARE @ts BIGINT;

DECLARE @lastNmin TINYINT;

SET @lastNmin = 30;

SELECT @ts = (SELECT cpu_ticks / ( cpu_ticks / ms_ticks )

FROM sys.dm_os_sys_info);

SELECT TOP(@lastNmin) Dateadd(ms, -1 * ( @ts - [timestamp] ), Getdate())AS

[EventTime],

sqlprocessutilization AS

[SQL Server Utilization],

100 - systemidle - sqlprocessutilization AS

[Other Process CPU_Utilization],

systemidle AS

[System Idle]

FROM (SELECT

record.value('(./Record/@id)[1]', 'int') AS record_id,

record.value('(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[1]', 'int') AS [SystemIdle],

record.value('(./Record/SchedulerMonitorEvent/SystemHealth/ProcessUtilization)[1]', 'int')AS [SQLProcessUtilization],

[timestamp]

FROM (SELECT[timestamp],

CONVERT(XML, record) AS [record]

FROM sys.dm_os_ring_buffers

WHERE ring_buffer_type = N'RING_BUFFER_SCHEDULER_MONITOR'

AND record LIKE'%%')AS x)AS y

ORDER BY record_id DESC;

CPU_Utilization запрос по загрузке CPU на sql server

В результате мы получим поминутную статистику использования процессора.

Анализ нагрузки на диск SQL Server

Посмотрим на загрузку дисков в операционной системе. Для этого запустите resmon.exe.

sql server анализ нарузки на диски

Нам нужна вкладка Disk. В секции Disk Activity отображаются файлы, к которым идёт обращение, и их скорость read/write на текущий момент. Отфильтруйте эту секцию по Total (кликните на Total). На самом верху будут файлы, которые на данный момент максимально используют диск. В случае с SQL Server это может быть полезно чтобы определить какая база больше всего нагружает диск на текущий момент.

В секции Storage отображаются все диски в системе. В этой секции нам нужны 2 параметра – Active Time и Disk Queue. Active Time в процентах отображает нагрузку на диск, то есть если вы видите на диске C:\ Active Time равный 90, это значит что ресурс чтения/записи диска на текущий момент используется на 90%. Столбец Disk Queue отображает очередь обращений к диску, и если значение очереди не равно нулю, то диск загружен на 100% и не справляется с нагрузкой. Так же если Active Time близок к 100, то диск используется практически на пределе своих возможностей по скорости.

Просмотр блокировок в SQL Server

После того как мы убедились, что серверу хватает ресурсов, можно переходить к просмотру блокировок.

Блокировки можно посмотреть через Activity Monitor в SSMS, но мы воспользуемся T-SQL, так как этот вариант более удобен и нагляден. Выполняем запрос:

SET NOCOUNT ON
GO
SELECT SPID, BLOCKED, REPLACE (REPLACE (T.TEXT, CHAR(10), ' '), CHAR (13), ' ' ) AS BATCH
INTO #T
FROM sys.sysprocesses R CROSS APPLY sys.dm_exec_sql_text(R.SQL_HANDLE) T
GO
WITH
BLOCKERS (SPID, BLOCKED, LEVEL, BATCH)
AS
(
SELECT SPID,
BLOCKED,
CAST (REPLICATE ('0', 4-LEN (CAST (SPID AS VARCHAR))) + CAST (SPID AS VARCHAR) AS VARCHAR (1000)) AS LEVEL,
BATCH
FROM #T R
WHERE (BLOCKED = 0 OR BLOCKED = SPID)
AND EXISTS (SELECT *
FROM #T R2
WHERE R2.BLOCKED = R.SPID AND R2.BLOCKED <> R2.SPID)
UNION ALL
SELECT R.SPID,
R.BLOCKED,
CAST (BLOCKERS.LEVEL + RIGHT (CAST ((1000 + R.SPID) AS VARCHAR (100)), 4) AS VARCHAR (1000)) AS LEVEL,
R.BATCH
FROM #T AS R
INNER JOIN BLOCKERS ON R.BLOCKED = BLOCKERS.SPID
WHERE R.BLOCKED > 0 AND R.BLOCKED <> R.SPID
)
SELECT N' ' + REPLICATE (N'| ', LEN (LEVEL)/4 - 1) +
CASE WHEN (LEN(LEVEL)/4 - 1) = 0
THEN 'HEAD - '
ELSE '|------ ' END
+ CAST (SPID AS NVARCHAR (10)) + N' ' + BATCH AS BLOCKING_TREE
FROM BLOCKERS
ORDER BY LEVEL ASC
GO
DROP TABLE #T
GO

Этот запрос возвращает список блокировок в виде дерева. Это удобно в работе, так как обычно, если возникает одна блокировка, она провоцирует за собой другие. Аналогично в Activity Monitor или в выводе sp_who2 можно увидеть поле “Blocked By”.

Если запрос ничего не вернул, то блокировок нет.

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

запрос для поиска блокировок в sql server

HEAD значит что этот запрос является причиной всех остальных блокировок ниже по дереву. 64 – это идентификатор процесса (SPID). После этого пишется тело запроса, который вызвал блокировку. Если у вас хватает ресурсов сервера, то скорее всего дело в самом запросе и во взаимном обращении к каким-то объектам. Для того чтобы сказать точнее, нужно анализировать конкретный запрос, который вызвал блокировку.

Политики SQL Server

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

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

В SSMS, подключитесь к серверу, на котором хотите выполнять политики (Management -> раздел Policy Management).

Импортируем файл Database Auto Shrink.xml. Жмём Evaluate

sql server non-comliant policy

На экземпляре node1 две базы данных, test1 и test2. На test2 включен autoshrink. Посмотрим детали.

политики sql server - расширенный статус

Политика определила включенный параметр AutoShrink, в описании обычно пишется объяснения к правилам. В данном случае дается объяснение почему auto shrink лучше отключать.

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

При установке SQL Server нужно выбирать только используемые компоненты СУБД, и указывать настройки в соответствии с конфигурацией “железа” вашего сервера. Всегда следите чтобы серверу хватало ресурсов, и чтобы на сервере не было блокировок

Самым мощным инструментом для диагностики SQL Server является T-SQL и DMV. Так же рекомендуется построить круглосуточный мониторинг над SQL Server и над обслуживающей его инфраструктурой для обнаружения всех возможных проблем.

Все способы:

  • Проверка соответствия системным требованиям
  • Шаг 1: Загрузка инсталлятора и выбор типа установки
  • Шаг 2: Инсталляция SQL Server
  • Шаг 3: Установка средства управления SQL Server
  • Шаг 4: Проверка работы
  • Вопросы и ответы: 2

Важно! В этой статье предоставлено руководство по установке SQL Server версии 2022 — актуальной на момент написания материала. В вашем случае она может считаться уже устаревшей. Но это не означает, что действия, описываемые далее, перестают быть актуальными. Может измениться только их последовательность и визуальное оформление некоторых элементов интерфейса.

Проверка соответствия системным требованиям

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

Память Не менее 6 ГБ свободного места на жестком диске
Монитор Super VGA с разрешением 800×600 пикселей или более высоким
Интернет Для поддержки функциональных средств интернета требуется стабильное соединение
Оперативная память 512 МБ (рекомендовано 1 ГБ)
Быстродействие процессора процессор x64 с тактовой частотой 1,4 ГГц (рекомендуется 2,0 ГГц и выше)
Тип процессора AMD Opteron, AMD Athlon 64, Intel Xeon с поддержкой Intel EM64T, Intel Pentium IV с поддержкой EM64T

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

Подробнее: Как посмотреть характеристики комплектующих компьютера в Windows 10

как установить sql server на windows 10_01

Шаг 1: Загрузка инсталлятора и выбор типа установки

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

Скачать SQL Server с официального сайта

Открыв в браузере страницу загрузки SQL Server, спуститесь чуть ниже до блока «Or, download a free specialized edition» и кликните по кнопке «Download now», расположенной под названием той редакции, которую хотите установить на свой компьютер. В качестве примера будет выбран вариант «Express». Эта версия обладает малым набором инструментов для работы с сервером, но отлично подойдет для ознакомления с программой. Если вам нужная полная версия со всеми функциями, тогда выберите «Developer».

как установить sql server на windows 10_02

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

  1. После завершения загрузки откройте директорию со скачанным файлом. Сделать это можно, щелкнув по иконке в виде папки, расположенной напротив названия загруженной программы, или самостоятельно через файловый менеджер «Проводник».
  2. как установить sql server на windows 10_03

  3. Находясь в папке со скачанным файлом, запустите его. Для этого достаточно дважды кликнуть по его названию ЛКМ.
  4. как установить sql server на windows 10_04

  5. Спустя некоторое время на экране появится окно. Выберите в нем тип установки сервера «Пользовательский»: именно он позволит настроить программу под себя, задав нужную конфигурацию инсталлятора.
  6. как установить sql server на windows 10_05

  7. Выберите язык интерфейса будущей программы из выпадающего списка, а также задайте ее расположение на диске. Делать это не обязательно, можно оставить параметры по умолчанию. После кликните по кнопке «Установить».
  8. как установить sql server на windows 10_06

  9. Начнется процесс загрузки файлов установки. За ходом выполнения этой процедуры можно следить с помощью полосы прогресса. Заметьте, что ниже находится строка, в которой указано, сколько данных уже загрузилось, полный их объем и текущая скорость скачивания. Ожидайте завершения процедуры.
  10. как установить sql server на windows 10_07

  11. Когда все файлы установки будут загружены на компьютер, автоматически начнется их извлечение. Ожидайте завершения этой процедуры.
  12. как установить sql server на windows 10_08

  13. После этого активное окно автоматически закроется, а на его месте появится «Центр установки SQL Server», в котором и будут выполняться все действия, направленные на инсталляцию приложения в Windows 10.
  14. как установить sql server на windows 10_09

Находясь в окне «Центр установки SQL Server», убедитесь, что выбрана вкладка «Установка». Если это так, следуйте инструкциям далее:

  1. Откройте окно для выбора конфигурации сервера с последующей инсталляцией. Для этого щелкните по пункту «Новая установка изолированного экземпляра SQL Server или добавление компонентов к существующей установке».
  2. как установить sql server на windows 10_10

  3. Дождитесь завершения выбранной операции. Об этом будет свидетельствовать исчезновение окна, показанного на изображении ниже.
  4. как установить sql server на windows 10_11

  5. Примите условия лицензионного соглашения. С ним вы можете ознакомиться непосредственно в появившемся окне. Для продолжения поставьте отметку напротив пункта «Я принимаю условия лицензии и Заявление о конфиденциальности», после чего щелкните по кнопке «Далее».
  6. как установить sql server на windows 10_12

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

    Продолжить можно только в том случае, если каждое правило будет иметь статус «Пройдено» или «Предупреждение». Во второй ситуации ознакомьтесь с информирующим текстом и внесите правки согласно рекомендациям.

  8. как установить sql server на windows 10_13

  9. При необходимости установите отметку напротив пункта «Использовать Центр обновления Майкрософт для проверки наличия обновлений (рекомендуется)». Тогда SQL Server будет автоматически обновляться до последней версии. Но делать это не обязательно. После кликните по кнопке «Далее».
  10. как установить sql server на windows 10_14

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

    Подробнее: Настройка брандмауэра в Windows 10

    как установить sql server на windows 10_40

    Если на этом этапе потенциальных проблем обнаружено не будет, щелкните по «Далее».

  12. как установить sql server на windows 10_15

  13. При желании вы можете установить расширение Azure для SQL Server. Если вам это необходимо сделать, тогда поставьте соответствующую отметку в верхней части окна, после чего введите свои авторизационные данные и следуйте «Далее». Если расширение вам не нужно, тогда снимите отметку и кликните «Далее».
  14. как установить sql server на windows 10_16

  15. На этапе выбора компонентов SQL Server рекомендуется в поле «Компоненты» оставить все по умолчанию. Вы также можете определить «Корневой каталог экземпляра», «Каталог общих компонентов» и «Каталог общих компонентов (x86)». Для этого кликните по кнопке в виде трех точек и укажите желаемую директорию. В завершение нажмите «Далее».
  16. как установить sql server на windows 10_17

  17. При настройке экземпляра можно установить значение по умолчанию или ввести новое имя, предварительно переведя переключатель в положение «Именованный экземпляр». Одним из условий является отсутствие пробелов и спецсимволов. Этот параметр просто определяет название вашего сервера SQL. После настройки щелкните по кнопке «Далее».
  18. как установить sql server на windows 10_18

  19. Выберите учетную запись для ядра сервера. По умолчанию указан текущий аккаунт, так что на этом этапе вы можете ничего не менять — просто кликните по «Далее». При необходимости можете активировать параметр «Предоставить привилегию выполнения задач обслуживания томов для службы ядра СУБД SQL Server».
  20. как установить sql server на windows 10_19

  21. Во время настройки ядра СУБД, находясь на вкладке «Конфигурация сервера», изначально выберите режим аутентификации. Рекомендуется оставить переключатель в положении «Режим аутентификации Windows». Тогда для подключения к серверу достаточно будет авторизоваться в операционной системе. При выборе пункта «Смешанный режим» потребуется дополнительно каждый раз при подключении к серверу вводить пароль системного администратора SQL Server.

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

  22. как установить sql server на windows 10_20

  23. Не нажимая «Далее», перейдите на вкладку «Каталоги данных». Здесь вы можете изменить расположение файлов сервера на диске — для этого щелкните по кнопке с тремя точками, расположенной напротив того каталога, который хотите отредактировать.
    как установить sql server на windows 10_21

    В появившемся диалоговом окне файлового менеджера ЛКМ выделите нужную папку, после чего щелкните по кнопке «ОК», чтобы ее выбрать.

  24. Проследуйте на вкладку «TempDB». В ней вы можете определить директорию для хранения журналов с отчетами, а также выбрать каталог, в котором будут содержаться временные данные. Настраивать это все не обязательно.
  25. как установить sql server на windows 10_23

  26. Продолжая оставаться на этапе «Настройка ядра СУБД», перейдите на вкладку «Память». Здесь можно задать минимальный и максимальный объем оперативной памяти, который будет выделяться для работы сервера. Рекомендуется оставить значения «По умолчанию». В таком случае SQL Server будет потреблять столько ресурсов, сколько в данный момент времени ему требуется. После этого щелкните по «Далее».
  27. как установить sql server на windows 10_24

  28. Если конфигурация компьютера соответствует системным требованиям SQL Server, тогда следующий этап по списку будет пропущен автоматически и начнется процедура распаковки файлов программы на компьютер. За ходом выполнения можно следить непосредственно в окне инсталлятора.
  29. как установить sql server на windows 10_25

  30. На завершающем этапе установки SQL Server вы можете ознакомиться со списком компонентов, которые были инсталлированы. После этого закройте окно, кликнув по соответствующей кнопке.
  31. как установить sql server на windows 10_26

Шаг 3: Установка средства управления SQL Server

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

  1. Вернувшись в окно «Центра установки SQL Server», щелкните по ссылке «Установить средства управления SQL Server», чтобы перейти на страницу загрузки этого компонента.
  2. как установить sql server на windows 10_27

  3. В открывшейся вкладке браузера спуститесь чуть ниже, до блока «Скачать SSMS», и щелкните по ссылке «Бесплатная загрузка для SQL Server Management Studio (SSMS) 19.1».
    как установить sql server на windows 10_28

    Примечание! В вашем случае версия этого компонента может отличаться от указанной здесь.

  4. Начнется процесс загрузки инсталляционного файла. За его ходом можно следить в появившемся выпадающем меню браузера. Дождитесь окончания процедуры.
  5. как установить sql server на windows 10_29

  6. Перейдите в директорию, куда был скачан установочный файл. Проще всего это сделать через браузер, нажав по икноке в виде папки, расположенной напротив названия загруженного файла. Но вы также можете это сделать, воспользовавшись файловым менеджером.
  7. как установить sql server на windows 10_30

  8. Находясь в директории с установочным файлом, запустите его. Для этого достаточно дважды щелкнуть ЛКМ по названию.
  9. как установить sql server на windows 10_31

  10. На экране отобразится установщик SQL Server Management Studio. При необходимости измените папку, в которую будет распакована программа, при помощи «Change». Кликните по «Install», чтобы запустить процесс инсталляции.
  11. как установить sql server на windows 10_32

  12. Изначально дождитесь, пока из интернета будут скачаны все необходимые файлы. За этим процессом можно следить в окне установщика.
    как установить sql server на windows 10_33

    Затем ожидайте, пока все данные SQL Server Management Studio распакуются в указанную директорию. Это действие занимает около пяти минут.

  13. как установить sql server на windows 10_34

  14. После завершения инсталляции программы появится окно, которое показано на изображении ниже. Щелкните по кнопке «Close», чтобы закрыть его.
  15. как установить sql server на windows 10_35

Шаг 4: Проверка работы

SQL Server установлен на компьютер, и пришло время проверить его работу. Для этого запустите SQL Server Management Studio, который позволяет управлять сервером и его базами данных.

  1. По умолчанию ярлык SQL Server Management Studio на рабочем столе не создается. Вы его можете найти в списке установленных программ меню «Пуск» или воспользоваться для этого поиском по системе. Во втором случае установите курсор в соответствующее поле на панели задач и введите запрос «SQL Server Management Studio» (без кавычек). После этого в результатах кликните по одноименному приложению левой кнопкой мыши.
  2. Дождитесь запуска приложения. Во время этого на экране появится заглушка, продемонстрированная на изображении ниже.
  3. как установить sql server на windows 10_37

  4. В окне «Connect to Server» выполните подключение к своему серверу. Если на предыдущем шаге этой инструкции вы повторяли все действия в точности, как там было описано, тогда SQL Server Management Studio автоматически задал верные данные. Для подключения останется только нажать кнопку «Connect». В противном случае предварительно введите свои авторизационные данные.
  5. как установить sql server на windows 10_38

  6. Установив подключение, попробуйте выполнить какой-либо запрос SQL. Для этого на панели инструментов вверху нажмите на «New Query», а в появившемся поле для ввода впишите любую команду. Например, осуществите проверку версии вашего сервера. Для этого введите приведенную ниже строку:

    SELECT @@VERSION

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

  7. как установить sql server на windows 10_39

Обратите внимание! SQL Server — это один из многочисленных реализаций реляционных баз данных. Если с этим сервером вам работать окажется неудобно или вы не найдете нужных функций, тогда можете попробовать альтернативы. На нашем сайте есть статьи, в которых описывается процесс установки MySQL и SQLite, при необходимости воспользуйтесь ссылками ниже, чтобы с ними ознакомиться.

Подробнее: Как установить MySQL / SQLite в Windows 10

как установить sql server на windows 10_41

Наша группа в TelegramПолезные советы и помощь

Tagged:
PowerShell

Problem

As engineer, it is common to have a task where we want to test connection to Sql Server database instance so that we can query. To achieve this task, we can use PowerShell.

In this blog post, we will walk you through how to test connection to Sql Server using PowerShell.

Using SqlServer Module

To use this module, first we need to install the module.


Install-Module -Name SqlServer

Then, we can use Invoke-Sqlcmd cmdlet to connecto to database by specifying connection string and the query. In this case, we use Windows Authentication. TrustServerCertificate property in connection string is optional.


Invoke-Sqlcmd -ConnectionString "Server=localhost;Database=AgrM7Loc541;Trusted_Connection=True;TrustServerCertificate=True" -Query "SELECT @@VERSION"

invoke-sqlcmd windows authentication result

To use this module, first we need to install it from PowerShell Gallery.

Then, we can use Test-DbaConnection cmdlet to test the connection by specifying sql server instance. This cmdlet will test connection to single sql server instance.

By default, this cmdlet will use Windows Authentication credential.


Test-DbaConnection -SqlInstance localhost

Please remember you can replace localhost with computername.

test connection to sql server instance using dbatools module

test connection to sql server instance using dbatools module 2

You can also connect with other alternative credential like Windows credentials by using SqlCredential parameter. In this case, u4agr\hsuryoat is the user.


Test-DbaConnection -SqlInstance localhost -SqlCredential (Get-Credential u4agr\hsuryoat)

test connection to sql server instance using dbatools with windows credential

Using SqlConnection Class from .NET Framework

We can also use SqlConnection class from .NET Framework. But, remember we have to enclosed the script with try-finally block to ensure the connection is released regardless error happens or not to avoid memory leak.

This example uses Windows Authentication connection string.


try {
    # Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
    $server = 'localhost'
    $database = 'AgrM7Loc542'

    $connectionString = 'Server={0};Database={1};Trusted_Connection=True' -f $server, $database
    $sqlConnection = New-Object System.Data.SqlClient.SqlConnection $ConnectionString
    $sqlConnection.Open()

    ## This message will be displayed if 'Open' method does not throw an exception
    Write-Host 'Open database connection'
}
catch {
    Write-Host 'An error occurs'
}
finally {
    ## Ensure closing the connection to release the resource / free memory
    $sqlConnection.Close()

    Write-Host 'Close database connection'
}

Conclusion

To test connection to sql server specifically the instance, we can use Test-DbaConnection cmdlet from DbaTools module. If we want to connect to sql server instance and query, we can use Invoke-Sqlcmd cmdlet from SqlServer module.

We can also use SqlConnection class from .NET Framework. To apply this method, we have to apply dispose pattern where the code is enclosed in try-finally block so that if error happens the connection must be released to avoid memory leak.

Some time ago I was asked to check if there is a possibility to access one of our SQL Server instances from a new hardware we got. That seems to be easy task, right? I thought so. Later, when I log in to the server, I immediately realized it will be not so easy to test connectivity to this SQL Server. That was pure Windows Server installation, without any additional tools. There was neither SQL Server Management Studio nor SQLCMD. In addition I had no Admin rights and was not allowed to install or add any software without official CR. Fortunately my teammate gave me an advice, to use UDL files. I never heard about that before and I was really amazed how easy solution that was.

What is an *.udl file?

UDL extension stands for Universal Data Link. These files are used by Data Link API which exposes a user interface to create and manage OLE DB connections. This functionality was introduced in Windows OS at least in Windows 95, maybe even earlier. That means you can use it on every Windows machine you work on. You no longer need to worry about additional tools.

How to use it?

It is incredibly simple and that is a beauty of this solution.

First step is to create an empty *.udl file. The easiest way is to open the Notepad and save empty file with *.udl extension. To do it:

  1. Open Notepad
  2. Go to [File] -> [Save As…]
  3. Choose where you want to save file
  4. Change [Save as type:] to “All files”
  5. Set file name with *.udl extension (i.e. TestConnection.udl)
  6. Hit [Save] button
  7. Close Notepad

Save as *.udl file

Second step is to open this newly created file. You can do it just by double-clicking on it. Data Link Properties window will appear.

On the first [Provider] tab you can choose an OLE DB data provider you want to use to test your connection. If you don’t know what to choose than leave the default one.

On the second [Connection] tab you can specify SQL Server name, authentication type, and database name. You can do it exactly the same way as in SQL Server Management Studio.

On the third [Advanced] tab you can specify initialization properties required by selected OLE DB provider. This tab is provider-specific. If you choose provider for SQL Server then major part of this tab will remain disabled, but it will be active when you choose provider for Analysis Services.

On the fourth [All] tab you can specify additional connection properties such as Application name or Fail-over partner.

Third step is to finally test a connectivity. You can do it from second [Connection] tab by hitting [Test Connection] button. That’s it!

Below you can find both results: successful and failed connection test.

I hope you like it and you will find it useful.

Additional MSDN Links:

Data Link API Overview
Configuring Data Controls to Use Universal Data Link (.udl) Files
Microsoft OLEDB Universal Data Link Configuration

-Marek

Share it:

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Подключение беспроводного экрана windows 8
  • Windows server 2008 r2 технические характеристики
  • Как узнать имя службы windows
  • Копировать часть экрана в windows 10
  • Intel hd630 driver windows 10