Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не удается авторизоваться при создании связного сервера  [new]
okwell5
Member

Откуда:
Сообщений: 116
Есть два сервера: MSSQLSERVER2012 и MSSQL2008. На сервере MSSQLSERVER2012 по расписанию запускается хранимая процедура, которая берет данные из MSSQL2008 и вставляет в таблицу базы MSSQL2012. Но это не работает из-за ошибки авторизации на связном сервере MSSQL2008 при запуске этой хранимки.
Вот текст ошибки:
06/27/2013 10:01:59,Обновление_остатков,Ошибка,3, DOMEN1\MSSQLSERVER2012,Обновление_остатков,Обновление остатков - запуск хранимой процедуры,,Выполняется от имени пользователя: NT SERVICE\SQLAgent$MSSQLSERVER2012.Поставщик OLE DB "SQLNCLI11" для связанного сервера "MSSQL2008" сообщил об ошибке. Ошибка проверки подлинности. [SQLSTATE 42000] (Ошибка 7399) Не удалось проинициализировать объект источника данных поставщика OLE DB "SQLNCLI11" для связанного сервера "MSSQL2008". [SQLSTATE 42000] (Ошибка 7303) Поставщик OLE DB "SQLNCLI11" для связанного сервера "MSSQL2008" вернул сообщение "Недопустимая спецификация авторизации". [SQLSTATE 01000] (Ошибка 7412). Шаг завершился с ошибкой.,00:00:00,16,7412,,,,0

Скрипт создания связного сервера:
EXEC master.dbo.sp_addlinkedserver @server = N'MSSQL2008', @srvproduct=N'SQL Server'
 /* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'MSSQL2008',@useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'MSSQL2008',@useself=N'False',@locallogin=N'sa',@rmtuser=N'sa',@rmtpassword='123456'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'MSSQL2008',@useself=N'False',@locallogin=N'DOMEN1\Rudnitsky',@rmtuser=N'sa',@rmtpassword='123456'

GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL2008', @optname=N'collation compatible', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL2008', @optname=N'data access', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL2008', @optname=N'dist', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL2008', @optname=N'pub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL2008', @optname=N'rpc', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL2008', @optname=N'rpc out', @optvalue=N'false'
GO

Первым шагом является проверка на существование данного связного сервера и при наличии удаляет связь - отрабатывает успешно.
Вторым шагом является указанный скрипт создания связного сервера - отрабатывает успешно.
Третим шагом запускается хранимая процедура. На этом шаге и выдает указанную выше ошибку.
27 июн 13, 10:16    [14490117]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
А через SSMS на этот сервер вы можете зайти с этими логинами/паролями?
27 июн 13, 10:36    [14490214]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
okwell5, ну дык Вы ломитесь на сервер от имени NT SERVICE\SQLAgent$MSSQLSERVER2012, а она прав не имеет
о чем и говорит ошибка
27 июн 13, 10:45    [14490258]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
okwell5
Member

Откуда:
Сообщений: 116
Сергей Викт., Да, через SSMS сам подключил и выполняю запросы, хранимки, все работает через среду.
27 июн 13, 14:16    [14491831]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
okwell5
Member

Откуда:
Сообщений: 116
HandKot,
А как в задании указать запуск от конкретного пользователя? Не нашел.
27 июн 13, 14:16    [14491834]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
okwell5
HandKot,
А как в задании указать запуск от конкретного пользователя? Не нашел.

хЫКСъ
USE [msdb]
GO
EXEC msdb.dbo.sp_update_job @job_id=N'a89a0d16-a1a3-4327-be6b-513973d2e98e',
@owner_login_name=N'sa'
GO
[/SRC]
27 июн 13, 14:31    [14491978]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
Блин...

USE [msdb]
GO
EXEC msdb.dbo.sp_update_job @job_id=N'a89a0d16-a1a3-4327-be6b-513973d2e98e', 
 @owner_login_name=N'sa'
GO

Это запуск задания от конкретного пользователя.
Ну или вместо SA - DOMEN1\Rudnitsky. Там уже на ваше усмотрение.
27 июн 13, 14:33    [14491988]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
okwell5
Member

Откуда:
Сообщений: 116
Сергей Викт.
Блин...

USE [msdb]
GO
EXEC msdb.dbo.sp_update_job @job_id=N'a89a0d16-a1a3-4327-be6b-513973d2e98e', 
 @owner_login_name=N'sa'
GO

Это запуск задания от конкретного пользователя.
Ну или вместо SA - DOMEN1\Rudnitsky. Там уже на ваше усмотрение.


Насколько я понимаю, этот код нужно теперь засунуть в новую хранимую процедуру, которую нужно запускать по расписанию?
И как узнать @job_id задания?
27 июн 13, 14:44    [14492080]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
okwell5
Сергей Викт.
Блин...

USE [msdb]
GO
EXEC msdb.dbo.sp_update_job @job_id=N'a89a0d16-a1a3-4327-be6b-513973d2e98e', 
 @owner_login_name=N'sa'
GO

Это запуск задания от конкретного пользователя.
Ну или вместо SA - DOMEN1\Rudnitsky. Там уже на ваше усмотрение.


Насколько я понимаю, этот код нужно теперь засунуть в новую хранимую процедуру, которую нужно запускать по расписанию?
И как узнать @job_id задания?

Нет. Лучше так:
У вас в задании есть несколько шагов (step1,step2 т.д.).
Так вот, для шага, где вы выполняете Хранимую процедуру выполните это:
EXEC msdb.dbo.sp_update_jobstep @job_id=N'341afeab-4082-409b-a385-7f46c4d79d85', @step_id=Номер_шага_запуска_ХП , 
		@database_user_name=N'ИмяЮзера'

Узнать ID вашего задания можно так:
select job_id from msdb.dbo.sysjobs_view WHERE [name]='Ваше задание'
27 июн 13, 14:56    [14492164]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
okwell5
Member

Откуда:
Сообщений: 116
Сергей Викт.,
Ввел, запусти и ошибка:
06/27/2013 15:23:08,Обновление_остатков,Ошибка,2,TERM64\MSSQLSERVER2012,Обновление_остатков,Создание связного сервера Term64,,Выполняется от имени пользователя: NT SERVICE\SQLAgent$MSSQLSERVER2012.Указанный @database_user_name ("sa") не существует. [SQLSTATE 42000] (Ошибка 14262). Шаг завершился с ошибкой.,00:00:01,16,14262,,,,0
27 июн 13, 15:25    [14492344]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
okwell5
Member

Откуда:
Сообщений: 116
Ввел пользователя TERM64\Rudnitsky, следующая ошибка:
<<Ошибка инструкции EXECUTE AS USER" для запрошенного пользователя "TERM64\Rudnitsky" в базе данных "test2". Шаг завершился с ошибкой. >>
27 июн 13, 15:34    [14492399]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
okwell5
Сергей Викт.,
Ввел, запусти и ошибка:
06/27/2013 15:23:08,Обновление_остатков,Ошибка,2,TERM64\MSSQLSERVER2012,Обновление_остатков,Создание связного сервера Term64,,Выполняется от имени пользователя: NT SERVICE\SQLAgent$MSSQLSERVER2012.Указанный @database_user_name ("sa") не существует. [SQLSTATE 42000] (Ошибка 14262). Шаг завершился с ошибкой.,00:00:01,16,14262,,,,0

либо я чего-то не понимаю, либо вы чего-то не сделали...
27 июн 13, 16:08    [14492712]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Сергей Викт.,
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'MSSQL2008',@useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'MSSQL2008',@useself=N'False',@locallogin=N'sa',@rmtuser=N'sa',@rmtpassword='123456'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'MSSQL2008',@useself=N'False',@locallogin=N'DOMEN1\Rudnitsky',@rmtuser=N'sa',@rmtpassword='123456'

Все чест но учетка под которрой запущен агент не имеет права на линкед сервер и на его созданияе,я так понимаю
27 июн 13, 16:13    [14492753]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
okwell5
Member

Откуда:
Сообщений: 116
Maxx
Сергей Викт.,
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'MSSQL2008',@useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'MSSQL2008',@useself=N'False',@locallogin=N'sa',@rmtuser=N'sa',@rmtpassword='123456'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'MSSQL2008',@useself=N'False',@locallogin=N'DOMEN1\Rudnitsky',@rmtuser=N'sa',@rmtpassword='123456'

Все чест но учетка под которрой запущен агент не имеет права на линкед сервер и на его созданияе,я так понимаю

А как такое может быть, у этого имени NT SERVICE\SQLAgent$MSSQLSERVER2012 админские права, т.е. такие же как и у sa. И что теперь делать?
27 июн 13, 18:22    [14493780]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
okwell5
Member

Откуда:
Сообщений: 116
okwell5,
Запустил агент сервера под системной учетной записью, т.е. под 'NT AUTHORITY\система'.
Все равно ошибка входа пользователя "NT AUTHORITY\система". Чего еще не хватает?
В скрипте создания связного сервера прописал:
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'TERM64',@useself=N'False',@locallogin='NT AUTHORITY\система',@rmtuser='NT AUTHORITY\система',@rmtpassword=NULL

Пароль, вроде должен быть NULL, если системная учетка с windows-авторизацией. Или я что-то не так написал? Вроде, написал все так, как на оф. сайте майкрософта.
30 июн 13, 21:33    [14502414]     Ответить | Цитировать Сообщить модератору
 Re: Не удается авторизоваться при создании связного сервера  [new]
okwell5
Member

Откуда:
Сообщений: 116
okwell5,
Все, заработало. Запустил агент под учеткой "TERM64\Rudnitsky". Удивительно-то как: под системной учеткой не принимал вход, а под юзером заработал.
30 июн 13, 21:47    [14502451]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить