Как узнать имя sql сервера
Перейти к содержимому

Как узнать имя sql сервера

  • автор:

@@SERVERNAME (Transact-SQL)

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Типы возвращаемых данных

nvarchar

Замечания

Программа установки SQL Server задает имя сервера имени компьютера во время установки. Чтобы изменить имя сервера, используйте sp_addserver, а затем перезапустите SQL Server.

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

Экземпляр Информация о сервере
Экземпляр по умолчанию имя_сервера
Именованный экземпляр имя_сервера\имя_экземпляра
Экземпляр отказоустойчивого кластера — экземпляр по умолчанию «сетевое_имя_экземпляра_отказоустойчивого_кластера_windows_server«
Экземпляр отказоустойчивого кластера — именованный экземпляр «сетевое_имя_экземпляра_отказоустойчивого_кластера_windows_server\имя_экземпляра«

Хотя функция @@SERVERNAME и свойство SERVERNAME функции SERVERPROPERTY могут возвращать строки с аналогичными форматами, информация может отличаться. Свойство SERVERNAME автоматически сообщает об изменениях сетевого имени компьютера.

В отличие от этого, @@SERVERNAME не сообщает об этих изменениях. Она информирует об изменениях имени локального сервера, выполненных при помощи хранимой процедуры sp_addserver или sp_dropserver.

Примеры

Следующий пример демонстрирует использование процедуры @@SERVERNAME .

SELECT @@SERVERNAME AS 'Server Name' 

Ниже приводится образец результирующего набора.

Server Name --------------------------------- ACCTG 

Как узнать имя sql сервера

Попытка
Структура = Новый Структура(«Тип, Сервер, База, SQlсервер, SQlБаза, Файл, Пользователь, Пароль, SQLOLEDB,ADODB»);
СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
СтрокаСоединения = СтрЗаменить(СтрокаСоединения, «;», Символы.ПС);
Стр1 = СтрПолучитьСтроку(СтрокаСоединения, 1);
Стр2 = СтрПолучитьСтроку(СтрокаСоединения, 2);
Если Лев(Стр1, 4) = «Srvr» Тогда
Структура.Тип = «Сервер»;
Структура.Сервер = Сред(Стр1, 7, СтрДлина(Стр1) — 7);
Структура.База = Сред(СтрПолучитьСтроку(СтрокаСоединения, 2), 6, СтрДлина(Стр2) — 6);
//подсоединяемся к базе на сервере для определения пароля и пользователя
COMConnector = Новый COMОбъект(«V8.COMConnector»);
Server = COMConnector.ConnectServer(Структура.Сервер);
Server.AddAuthentication(СокрЛП(Пользователь),Пароль);
ArrayIB = Server.GetInfoBASes();
Для Каждого IB Из ArrayIB Цикл
Если ВРег(IB.Name)<> ВРег(Структура.База) Тогда
Продолжить;
Иначе
Структура.SQlсервер=ib.DBServerName;
Структура.SQlБаза=ib.DBName;
Структура.Пользователь=ib.DBUser;
Структура.Пароль=ib.DBPASsword;
Структура.SQLOLEDB=»Provider=SQLOLEDB;Password=»+ib.DBPASsword+»;Persist Security Info=True;User ;Initial Catalog=»+ib.DBName+»;Data Source Driver=;Server=» + ib.DBServerName + «;Uid=» + ib.DBUser + «;Pwd=» + ib.DBPASsword + «;DataBASe=» + ib.DBName + «;» + «Pwd=» + ib.DBPASsword +»;»;
Прервать;
КонецЕсли;
КонецЦикла;
Если ib.DBName=»» Тогда
ВызватьИсключение(» — не удалось получить доступ к серверу 1с»);
КонецЕсли;
Иначе
Структура.Тип = «Файл»;
Структура.Файл = Сред(Стр1, 6, СтрДлина(Стр1) — 6);
КонецЕсли;
Возврат Структура;
Исключение
Сообщить(«Ошибка получения параметров ИБ на сервере приложения 1с
|»+ОписаниеОшибки(),СтатусСообщения.ОченьВажное);
Соединение_ОткрытьНастройки();
Возврат False
КонецПопытки;

(5) Не, ну если изнутри SQL-ной базы, то и кода столько не надо, понятно что сервер в СтрокеСоединения имеется.

(6) не ну это понятно, ну не просто же ему имя сервера нужно. Скорее всего он хочет к нему подключится.:)) И что то там натворить. 8))

Урок 1. Соединение с ядром СУБД

При установке ядро СУБД SQL Server установленные средства зависят от выпуска и выбора настроек. На этом занятии рассматриваются основные инструменты и показано, как подключиться и выполнить важную функцию (авторизацию большего количество пользователей).

Это занятие содержит следующие задачи.

  • Средства для начала работы
  • Подключение с помощью среды Management Studio
  • Авторизация дополнительных подключений

Средства для начала работы

  • Sql Server ядро СУБД поставляется с различными инструментами. В этой статье описываются первые необходимые инструменты и вы можете выбрать подходящее средство для задания. Все средства доступны из меню Пуск . Некоторые средства, например SQL Server Management Studio (SSMS), не устанавливаются по умолчанию. Выберите нужные средства во время установки. Чтобы получить полное описание приведенных ниже средств, выполните поиск по ним в электронной документации по SQL Server. SQL Server Express содержит только подмножество средств.

Общие инструменты

В следующей таблице описаны некоторые из наиболее распространенных клиентских средств.

Средство клиента Тип Операционная система
SQL Server Management Studio (SSMS) Графический пользовательский интерфейс Windows
Azure Data Studio Графический пользовательский интерфейс Windows, macOS, Linux
bcp CLI Windows, macOS, Linux
sqlcmd CLI Windows, macOS, Linux

В этой статье мы сосредоточимся на подключении через SSMS. Если вы хотите подключиться через Azure Data Studio, см . краткое руководство. Использование Azure Data Studio для подключения и запроса SQL Server.

Пример базы данных

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

SQL Server Management Studio (только Для Windows)
  • В текущих версиях Windows в меню Пуск введите «SSMS», а затем выберите Microsoft SQL Server Management Studio.
  • При использовании более старых версий Windows в меню «Пуск» наведите указатель на все программы, наведите указатель на Microsoft SQL Server и выберите SQL Server Management Studio.

Подключение с помощью SSMS

  • Легко подключиться к ядро СУБД из средств, работающих на том же компьютере, если вы знаете имя экземпляра и если вы подключаетесь в качестве члена локальной группы Администратор istrators на компьютере. Следующие процедуры должны выполняться на том же компьютере, на котором размещается SQL Server.

В этом разделе рассматривается подключение к локальному экземпляру SQL Server. Сведения о База данных SQL Azure см. в Подключение База данных SQL Azure.

Определение имени экземпляра ядро СУБД
  1. Войдите в Windows в качестве члена группы Администратор istrators и откройте Management Studio.
  2. В диалоговом окне Подключение к серверу нажмите кнопку Отмена.
  3. Если компонент «Зарегистрированные серверы» не отображается, в меню Вид выберите пункт Зарегистрированные серверы.
  4. Выбрав компонент Ядро СУБД на панели инструментов «Зарегистрированные серверы», разверните компонент Ядро СУБД, щелкните правой кнопкой мыши пункт Группы локальных серверов, наведите указатель на пункт Задачии выберите пункт Зарегистрировать локальные серверы. Разверните локальные группы серверов, чтобы просмотреть все экземпляры ядро СУБД, установленные на компьютере. Экземпляр по умолчанию безымянный и отображается как имя компьютера. Именованный экземпляр отображается как имя компьютера, за которым следует обратная косая черта (\), а затем имя экземпляра. Для SQL Server Express экземпляр называется \sqlexpress, если имя не было изменено во время установки.
Убедитесь, что запущена ядро СУБД
  1. В зарегистрированных серверах, если имя экземпляра SQL Server имеет зеленую точку со белой стрелкой рядом с именем, ядро СУБД выполняется, и никаких дальнейших действий не требуется.
  2. Если имя экземпляра SQL Server имеет красную точку с белым квадратом рядом с именем, ядро СУБД останавливается. Щелкните правой кнопкой мыши имя ядро СУБД, выберите элемент управления службой и нажмите кнопку «Пуск«. После диалогового окна подтверждения ядро СУБД должен начинаться, а круг должен быть зеленым с белой стрелкой.
Подключение к ядру СУБД

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

  1. В Management Studio в меню «Файл» выберите Подключение обозреватель объектов.
    • Будет открыто диалоговое окно Соединение с сервером . В поле Тип сервера отобразится тип компонента, использованный в прошлой сессии.
  2. Выберите Ядро СУБД. Screenshot of the Object Explorer showing the Connect dropdown list and the Database Engine option called out.
  3. В поле Имя сервера введите имя экземпляра ядра СУБД. В экземпляре SQL Server по умолчанию имя сервера совпадает с именем компьютера. Имя сервера именованного экземпляра SQL Server — это computer_name instance_name\>>, например ACCTG_SRVR\SQLEXPRESS.< На следующем снимке экрана показано подключение к экземпляру SQL Server по умолчанию (без имени) на компьютере с именем PracticeComputer . В Windows вошел пользователь Mary из домена Contoso. При использовании проверки подлинности Windows нельзя изменить имя пользователя. Screenshot of the Connect to Server dialog box with the Server name text box called out.
  4. Нажмите Подключиться.

В этом учебнике предполагается, что вы не знакомы с SQL Server и у вас нет проблем с подключением. Подробные инструкции по устранению неполадок см. в разделе Устранение неполадок при соединении с компонентом SQL Server Database Engine.

Авторизация дополнительных подключений

Теперь, когда вы подключились к SQL Server от имени администратора, одна из первых задач позволяет другим пользователям подключаться. Это делается посредством создания имени входа и предоставления ему разрешения на доступ к базе данных в качестве пользователя. Имена входа можно создавать с помощью проверка подлинности Windows, проверки подлинности SQL или проверки подлинности Microsoft Entra. проверка подлинности Windows имена входа используют учетные данные из Windows. Имена входа проверки подлинности SQL хранят сведения о проверке подлинности в SQL Server и не зависят от учетных данных Windows. Имена входа из идентификатора Microsoft Entra (ранее Azure Active Directory) используют учетные данные из облачных удостоверений. Дополнительные сведения об этом методе см. в следующей статье. Использование проверки подлинности Microsoft Entra.

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

В большинстве организаций пользователи входят в домены, и используется проверка подлинности Windows. Вы можете экспериментировать, создав на компьютере дополнительных локальных пользователей. Компьютер будет проходить проверку подлинности локальных пользователей, поэтому домен — это имя компьютера. Например, если компьютер называется MyComputer и вы создаете пользователя с именем Test , то описание Windows для пользователя . Mycomputer\Test

Создание имени входа для проверки подлинности Windows

Screenshot of the Login - New dialog box with the Login name text box called out.

  1. В предыдущей задаче вы подключились к ядро СУБД с помощью Management Studio. В обозревателе объектов разверните экземпляр своего сервера, затем узел Безопасность, щелкните правой кнопкой мыши Имена входаи выберите пункт Создать имя входа. Откроется диалоговое окно Создание имени входа .
  2. На странице Общие в поле Имя входа введите имя входа Windows в следующем формате: \
  3. В поле База данных по умолчанию выберите базу данных AdventureWorks (если она доступна). В противном случае выберите master базу данных.
  4. На странице ролей сервера, если новое имя входа должно быть администратором, выберите sysadmin. В противном случае оставьте это поле пустым.
  5. На странице Сопоставление пользователей выберите Сопоставление для базы данных AdventureWorks2022 (если она доступна). В противном случае выберите master . В поле Пользователь уже внесено имя входа. При закрытии диалоговое окно создает этого пользователя в базе данных.
  6. В поле Схема по умолчанию введите dbo , чтобы сопоставить имя входа со схемой владельца базы данных.
  7. Подтвердите настройки по умолчанию для полей Защищаемые объекты и Состояние и нажмите кнопку ОК, чтобы создать имя входа.

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

Связанный контент

  • Диалоговое окно «Подключение к SQL Server»
  • Устранение неполадок при соединении с SQL Server Database Engine
  • Краткое руководство. Подключение и запрос базы данных SQL Azure с помощью SSMS
  • Краткое руководство. Подключение и запрос базы данных SQL Azure с помощью Azure Data Studio

Как получить имя сервера и экземпляра в T-SQL: сценарии

Вы можете получить имя текущего экземпляра SQL Server, используя функцию SERVERPROPERTY с параметром ‘InstanceName’ :

Скопировать код

SELECT SERVERPROPERTY('InstanceName') AS InstanceName;

Этот запрос возвращает имя экземпляра или NULL , если у вас установлен экземпляр по умолчанию.

Чтобы узнать полное имя сервера или экземпляра, примените переменную @@SERVERNAME :

Скопировать код

SELECT @@SERVERNAME AS FullInstanceName;

Если вам необходимо узнать имя службы сервера, воспользуйтесь @@SERVICENAME :

Скопировать код

SELECT @@SERVICENAME AS ServiceName;

Это может быть особенно полезным при настройке группы постоянной доступности Always On.

Практическое применение в различных конфигурациях

Экземпляры по умолчанию и именованные экземпляры

Часто различить экземпляры SQL Server по умолчанию от именованных может быть не так просто, как кажется:

  • Экземпляр по умолчанию: не имеет конкретного имени и работает на стандартном порту 1433.
  • Именованный экземпляр: обладает своим уникальным именем.

Данный запрос позволяет определить, является ли перед вами именованный экземпляр или экземпляр по умолчанию:

Скопировать код

SELECT SERVERPROPERTY('InstanceName') AS InstanceName;

Работа с кластерами и группами высокой доступности

В условиях работы с кластером или в среде высокой доступности значение @@SERVERNAME может не всегда соответствовать активному узлу. В контексте группы Always On Availability Group может быть полезно использовать @@SERVICENAME :

Скопировать код

SELECT CASE WHEN SERVERPROPERTY('IsClustered') = 1 THEN 'Кластеризованный экземпляр' WHEN SERVERPROPERTY('IsHadrEnabled') = 1 THEN 'Группа Always On Availability Group' ELSE SERVERPROPERTY('InstanceName') END AS InstanceType;

Аспекты работы с различными версиями и необходимость доступа

Важно учитывать следующее прежде чем приступать к работе с этими запросами:

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

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

Скопировать код

SELECT SERVERPROPERTY('InstanceName') AS InstanceName, SERVERPROPERTY('Port') AS InstancePort;

Визуализация

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

Скопировать код

SELECT @@SERVERNAME AS InstanceName;

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

Детальный обзор серверных деталей

Информация из реестра Windows

Имя экземпляра SQL Server хранится в реестре Windows:

Скопировать код

EXEC xp_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\MSSQLServer\Setup', 'SQLPath';

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

Извлечение деталей экземпляра сервера

Чтобы получить более подробную информацию о конкретном экземпляре SQL Server, выполните следующую инструкцию:

Скопировать код

SELECT @@SERVERNAME AS ServerName, SERVERPROPERTY('ProductVersion') AS ProductVersion, SERVERPROPERTY('Edition') AS Edition, SERVERPROPERTY('MachineName') AS MachineName, SERVERPROPERTY('IsClustered') AS IsClustered, SERVERPROPERTY('IsHadrEnabled') AS IsHadrEnabled, SERVERPROPERTY('ServerName') AS OriginalServerName;

Использование командной строки (sqlcmd)

Почему ограничиваться SQL Server Management Studio, если вы можете взаимодействовать с SQL Server напрямую из командной строки?

Скопировать код

sqlcmd -S servername\instancename

Параметр -S задает имя сервера или экземпляра, к которому осуществляется подключение.

Полезные материалы

  1. SERVERPROPERTY (Transact-SQL) – SQL Server | Microsoft Docs — официальная документация по функции SERVERPROPERTY в T-SQL.
  2. Как узнать имя текущего экземпляра SQL Server – Stack Overflow — обсуждение использования @@SERVICENAME на Stack Overflow.
  3. SET vs SELECT при присваивании переменных в SQL Server — анализ различий между SET и SELECT при работе с переменными в T-SQL и использовании функций вроде SERVERPROPERTY.
  4. Утилита sqlcmd – SQL Server | Microsoft Docs — документация по утилите sqlcmd для взаимодействия с SQL Server из командной строки.
  5. Конфигурации экземпляров SQL Server — особенности настройки экземпляров SQL Server.
  6. Microsoft Q&A | Microsoft Docs — платформа для обмена знаниями по продуктам Microsoft, включая SQL Server.

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

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