Де знайти ім'я сервера sql. F.A.Q

Зміна імені комп'ютера з встановленим примірником MS SQL Server - не найкраща ідея, оскільки після перейменування в роботі SQL можуть виникнути деякі проблеми. Щоб уникнути цих проблем, необхідно оновити системні метадані таким чином, щоб відобразити в них зміна імені комп'ютера.

Зробити це можна за допомогою нескладного SQL запиту. Так виглядає запит для дефолтного примірника SQL Server:

sp_dropserver "old_name";
GO
sp_addserver "new_name", local;
GO

А так для іменованого:

sp_dropserver "old_name \\ InstanceName";
GO
sp_addserver "new_name \\ InstanceName", local;
GO

Для прикладу візьмемо комп'ютер з встановленим примірником MS SQL Server. Щоб подивитися поточний ім'я сервера, відкриваємо SQL Management Studio та виконуємо запит:

select @@ Servername

Як бачите, ім'я сервера, отримане за допомогою запиту (2012R2Std_Temp) не збігається з ім'ям комп'ютера (SQL_Test).

Оскільки в прикладі використовується дефолтний екземпляр SQL Server, то для зміни імені виконаємо наступний запит:

sp_dropserver "2012R2Std_Temp";
GO
sp_addserver "SQL_Test", local;
GO

Після перейменування необхідно перезапустити SQL Server. Зробити це можна з командного рядка, командою:

net stop mssqlserver && net start mssqlserver

При установці Microsoft SQL Server, внутрішнє ім'я екземпляра SQL сервера створюється на підставі поточного імені хоста. Однак, при перейменуванні комп'ютера / сервера, ім'я SQL сервера в метаданих (зберігається в sys.servers) не оновлюється автоматично, в результаті чого при роботі з SQL можуть виникати різні проблеми. У цій інструкції ми покажемо, як коректно оновити метадані в SQL і змінити ім'я сервера без повного переустановлення MSSQL. Інструкція може бути застосована для окремо стоїть (НЕ кластерного) SQL Server версій від MS SQL 2000 до 2012.

Порада. Можна змінити лише ім'я півночі, змінити ім'я екземпляра (інстанси) SQL Server без перевстановлення не можна.

Відкрийте консоль SQL Server Management Studio і за допомогою наступного запиту перевірте поточне ім'я хоста і ім'я інстанси SQL:

Як ви бачите:

  • Ім'я сервера (HostName): DESKTOP-V2OE3P0
  • Повне ім'я екземпляра SQL (ServerName): DESKTOP-V2OE3P0 \\ SQLDB

Перейменуємо ім'я комп'ютер і перезавантажити його:

Rename-Computer -NewName Sql-Srv1 -Restart

Порада. Ім'я комп'ютера можна змінити і з властивостей My Computer.

Після перезавантаження спробуйте підключиться до старого імені сервера SQL: DESKTOP-V2OE3P0 \\ SQLDB. З'явиться помилка, адже ім'я сервера змінилося.

Can not connect to DESKTOP-V2OE3P0 \\ SQLDB.
A network-related or Instant-specific error occurred when establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (Provider: SQL Network Interface, error: 26 - Error Locating Server / Instance Specified) (Microsoft SQL Server)

Ще раз перевіримо ім'я хоста і ім'я інстанси:

Select @@ ServerName ServerName, Host_name () HostName

В даному випадку ім'я інстанси не збігається з назвою комп'ютера і посилається на старе ім'я комп'ютера DESKTOP-V2OE3P0.

Щоб змінити ім'я для іменованого екземпляра SQL, виконайте наступну команду TSQL.

Видалити старе ім'я:

sp_dropserver "DESKTOP-V2OE3P0 \\ SQLDB";
Go

Додамо нове ім'я:

sp_addserver "Sql-Srv1 \\ SQLDB", local;
GO

Якщо потрібно змінити ім'я сервера у дефолтного примірника SQL Server команда така:

sp_dropserver "OldName";
GO
sp_addserver "NewName", local;
GO

додаткові кроки

Якщо при виконанні команди sp_dropserver з'явиться помилка:

Msg 15190, Level 16, State 1, Procedure sp_dropserver, Line 56

Швидше за все, є віддалені підключення до сервера DESKTOP-V2OE3P0. Скинути їх можна такими командами. Для дефолтного інстанси:

sp_dropremotelogin DESKTOP-V2OE3P0;
GO

Для іменованого:

sp_dropremotelogin DESKTOP-V2OE3P0 \\ SQLDB;
GO

Перевіримо, що ім'я сервера в метаданих оновилося:

SELECT @@ SERVERNAME AS 'ServerName'

SELECT * FROM SYS.SERVERS

Як ви бачите, ім'я сервера змінилося. Залишилося перезапустити службу SQL Server:

net stop MSSQL $ SQLDB && net start MSSQL $ SQLDB

Важливо!

  • Цей спосіб підійде тільки для перейменування отдельностоящего SQL сервера. Для перейменування SQL Server в кластері Failover Cluster потрібно використовувати консоль Cluster Management.
  • Не можна змінити ім'я сервера, який бере участь в реплікації або створення дзеркал
  • Якщо встановлені служби звітів Reporting services, після перейменування вони будуть недоступні (https://msdn.microsoft.com/en-us/library/ms345235.aspx)

Я встановив Microsoft SQL Server 2008.

Коли я запускаю SQL Server Management Studio (SSMS), я отримую вікно входу в Connect to Server з порожнім текстовим полем для Server name. Я пробував багато імен, але я не міг його вирішити.

Як я можу знайти / отримати ім'я сервера?

Крок 1: Переконайтеся, що SQLEXPRESS і LocalDB встановлені у вашій системі. Перейти до SQL SERVER Configuration Manager \u003d\u003e Служба SQL Server

Якщо нічого не вказано для служб SQL Server, встановіть нижче компоненти (для 64-розрядної ОС) 1. SqlLocalDB 2. SQLEXPR_x64_ENU 3. SQLEXPRADV_x64_ENU 4. SQLEXPRWT_x64_ENU

Крок 2: Ввести введення в експлуатацію. (Dot) в якості імені сервера і натисніть «Підключити» [введіть опис зображення тут] Знову введіть. \\ SQLEXPRESS як ім'я сервера і натисніть на з'єднання

1.Ви можете запустити наступну команду.

EXEC xp_cmdshell "reg query" HKLM \\ Software \\ Microsoft \\ Microsoft SQL Server \\ Імена примірників \\ SQL "";
ЙТИ

2. Використовуйте внутрішній стандартного звіту.

виберіть екземпляр -\u003e клацніть правою кнопкою миші-\u003e Звіти -\u003e Стандартні звіти -\u003e Сервер Dashbords

Існує багато способів, згаданих вище. Але я використовую досить простий спосіб (ну не простий, як SELECT @@ SERVERNAME). Коли ви запустите студію управління SQL-сервером, ви побачите підказку нижче GUI

Там Ім'я сервера - це ім'я вашого сервера (може бути кілька серверів відповідно до вашої середовищем dev, виберіть правильний). Надіюсь це допоможе:)

з огляду на наступні приклади

  • Ім'я примірника SQL: MSSQLSERVER
  • Порт: +1433
  • Ім'я хоста: MyKitchenPC
  • IPv4: 10.242.137.227
  • DNS суфікс: dir.svc.mykitchencompany.com

ось ваші можливі імена серверів:

  • локальний \\ MSSQLSERVER
  • локальний, 1433 \\ MSSQLSERVER
  • MyKitchenPC, 1433 \\ MSSQLSERVER
  • 10.242.137.227,1433 \\ MSSQLSERVER
  • MyKitchenPC.dir.svc.mykitchencompany.com, 1433 \\ MSSQLSERVER

start -\u003e CMD -\u003e (Write comand) SQLCMD -L перший рядок - це ім'я сервера, якщо ім'я сервера (локальне) Ім'я сервера: YourPcName \\ SQLEXPRESS

Запустіть цей запит, щоб отримати ім'я

Як згадувалося @ Khaneddy2013, cmd SQLCMD -L НЕ повертає ім'я сервера при запуску. Bcz Я тільки встановив SSMS (локальний db і сервер не були встановлені). після спроби установки SqlLocaLDB і SQLEXPR32_x86_ENU (32-розрядна ОС) я зміг підключитися. І тепер у вікні cmd також відображаються імена серверів.

ім'я сервера за замовчуванням - це ім'я вашого комп'ютера, але ви можете використовувати «.». (Dot) замість імені локального сервера.

ще одна річ, яку ви повинні розглянути, можливо, ви встановили SQL Server Express Edition. в цьому випадку ви повинні ввести «. \\ Sqlexpress »в якості імені сервера.

моя проблема полягала в тому, що при підключенні до бази даних SQL в майстра додавання посилань знайдіть SERVERNAME. Я знайшов його, виконавши запит (SELECT @@ SERVERNAME) всередині студії управління SQL, а reusl - моє ім'я сервера. Я поклав це в поле імені сервера, і все пройшло відмінно.

У мене також була ця проблема в перший раз.

У діалоговому вікні «Підключення до сервера» перевірте настройки за замовчуванням і натисніть «Підключитися». Для підключення в поле Ім'я сервера повинно бути вказано ім'я комп'ютера, на якому встановлений SQL Server. Якщо Database Engine є іменованих екземпляром, поле «Ім'я сервера» також має містити ім'я екземпляра в форматі: ім'я комп'ютера \\ імя_екземпляра.

Так, наприклад, я вирішив проблему наступним чином: я набрав ім'я сервера: Alex-PC \\ SQLEXPRESS

10

Моєї роботи компанія має сервер MSSQL 2005. У мене є два питання дізнатися поточний користувач журналу і будь-який спосіб відправити попередження:

Перше питання в тому, чи є T-SQL або SP для пошуку поточного імені користувача та імені машини. Якщо користувач використовує ім'я SQL-сервера для віддаленого доступу до SQL-сервера, чи є спосіб дізнатися ім'я цього вікна користувача (ім'я для входу в вікна)?

Моє наступне запитання: якщо я можу отримати ім'я користувача або ідентифікатор, чи є спосіб відправити попередження, наприклад, «в даний час SQL-сервер очищається або резервне копіювання, будь ласка, не входите в систему в цей час», Напевно, це може бути складно. Можливо, мені доведеться відправити електронний лист користувачеві.

Сервер SQL доступний тільки в компанії. SQL-сервер має список користувачів в якості користувачів входу: користувачі Windows, користувачі SQL і sa.

  • 3 відповіді
  • Сортування:

    активність

30

SELECT SUSER_SNAME (), HOST_NAME ()

Якщо з'єднання є «sa» (або будь-яким іншим логіном SQL), ви не можете знайти ім'я користувача домену / вікна. SQL Server знає, що це «sa» або це логін SQL.

HOST_NAME може бути і ненадійним, його можна встановити в рядку підключення ( «Ім'я програми»). Або це може бути розпливчастим, наприклад, «Microsoft Office» для за замовчуванням для Access, Excel і т.д.

Ви можете повернутися назад за допомогою client_net_address в sys.dm_exec_connections і відповідає MAC-адресу для IP і з'ясувати, хто увійшов в ...

4

An Найпростіший спосіб дізнатися, як хост і користувач є

EXEC sp_who2;

Де ви отримаєте деяку іншу інформацію, яка може бути добре, щоб знати, як якщо б користувач активний і так далі ... це не вирішує проблеми, оголошено gbn.

3

Дякуємо за всі ваші пропозиції. Я пробував все методи, і я думаю, що метод Йоакима Бекман задовольняє мою потребу. Ось короткий виклад того, що я дізнаюся.

  • Запит даних sys.syslogins містить тільки реєстраційну інформацію. Аккаунт не вказує поточну тимчасову мітку користувача. Я спробував увійти в систему з іншої програми в мій SQL, і цей запит не перераховує логін.
  • SELECT SUSER_SNAME (), HOST_NAME () відображає тільки одного користувача на сервері SQL. Наприклад, я входжу в систему як моє ім'я для SQL-сервера. Результат цього запиту містить тільки моє ім'я і ім'я машини. Цей запит не відображує поточних користувачів на сервері SQL.
  • exec sp_who2 містить інформацію, яка мені потрібна. У ньому перераховані ім'я поточного імені користувача, активний стан, доступ до імені користувача db і використовувана команда.

Для того щоб отримати інформацію, яку я використовую в SP, я повинен фільтрувати і приєднувати інформацію до інших таблиць, таким як електронні листи. Ось коди, які я використовую:

DECLARE @retTable TABLE (SPID int not , Status varchar (255) not , Login varchar (255) not , HostName varchar (255) not , BlkBy varchar (10) not , DBName varchar (255) , Command varchar (255) not , CPUTime int not , DiskIO int not , LastBatch varchar (255) not , ProgramName varchar (255) , SPID2 int not , REQUESTID INT) INSERT INTO @retTable EXEC sp_who2 SELECT Status, Login , HostName, DBName, Command, CPUTime, ProgramName - * FROM @retTable --WHERE Login not like "sa%" - if not interested in sa ORDER BY Login, HostName