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

Откуда:
Сообщений: 29
Всем привет.
Прошу вашей помощи в настройке учетных записей и прав доступа для ssis пакета.
Версия MSSQL 2012 Ent SP1.
Цель: создать ssis пакет, который выбирает данные из БД и сохраняет их в текстовом файле на сетевой папке.

Сперва создал ssis пакет, который запускается из приложения и в ходе выполнения сохраняет текстовый файл на локальном диске сервера БД.

Затем в Connection string изменил путь для сохранения файла указав адрес сетевой папке.
При отладке пакета в VS файл создается как надо, но при запуске из приложения это не работает. При этом приложение запущено от имени той же учетки, с которой я работаю в VS при отладке пакета.

Служба SSIS на сервере запущена от имени доменной учетной записи у которой есть права на запись в сетевую папку так же как и у моей учетки.

Где найти информацию о том, в контексте какой учетной записи выполняется ssis пакет если он запущен из приложения?

Почему-то я ошибочно был уверен, что ssis пакет выполняется от имени той же учетной записи, с которой запущена служба SSIS.

Заранее спасибо.
20 мар 15, 10:03    [17408379]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с правами доступа для работы с ssis.  [new]
Glory
Member

Откуда:
Сообщений: 104760
forel
но при запуске из приложения это не работает.

Так и сообщает - "это не работает" ?

forel
Почему-то я ошибочно был уверен, что ssis пакет выполняется от имени той же учетной записи, с которой запущена служба SSIS.

А вы собственно как запускаете то это ваше "из приложения" ?
20 мар 15, 10:09    [17408407]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с правами доступа для работы с ssis.  [new]
forel
Member

Откуда:
Сообщений: 29
Glory,
не работает - имею ввиду, что на сетевой папке не создается текстовый файл (при указании локальной папки файл создается).

Из приложения запускаю хранимую процедуру вида:
Declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Package.dtsx', @execution_id=@execution_id OUTPUT, @folder_name=N'Oracle_Integration_Packages', @project_name=N'Integration Services Project1', @use32bitruntime=False, @reference_id=Null
Select @execution_id
DECLARE @var0 sql_variant = N'0001'
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,  @object_type=30, @parameter_name=N'File_Number', @parameter_value=@var0
DECLARE @var1 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,  @object_type=50, @parameter_name=N'LOGGING_LEVEL', @parameter_value=@var1
EXEC [SSISDB].[catalog].[start_execution] @execution_id
GO


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

Мне бы очень помогли ссылки на подробный справочный материал по моей проблеме.

Спасибо.
20 мар 15, 10:30    [17408512]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с правами доступа для работы с ssis.  [new]
Glory
Member

Откуда:
Сообщений: 104760
forel
не работает - имею ввиду, что на сетевой папке не создается текстовый файл (при указании локальной папки файл создается).

Т.е. ошибок выполнения нет ? Или вы про них просто ничего не знаете ?

forel
Из приложения запускаю хранимую процедур

Это не приложение запускает ваш пакет. Это сервер его запускает
20 мар 15, 10:39    [17408557]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с правами доступа для работы с ssis.  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4260
forel
Почему-то я ошибочно был уверен, что ssis пакет выполняется от имени той же учетной записи, с которой запущена служба SSIS.

Пакеты SSIS запускаются под учеткой SQL Agent если в джобе и под учеткой запустившего если он стартует его вручную.

ВАЖНО: Если пакет стоит в джобе, то даже ручной запуск джоба происходит под учеткой SQL Agent!
20 мар 15, 10:54    [17408654]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с правами доступа для работы с ssis.  [new]
forel
Member

Откуда:
Сообщений: 29
Glory,
ошибка при выполнении:
								20.03.2015 10:36:11	"Data Flow Task:Error: Cannot open the datafile ""\\xx.xx.xx.xx\Test_folder\test_file.fic"".
"				Data Flow Task			Flat File Destination [2]	\Package\Data Flow Task	


Следуя вашей подсказке, буду смотреть в сторону настройки учетной записи, от которой стартует компонент Database Engine. Верно? :) Сейчас это LocalSystem, а для нее, если я не ошибаюсь, настроить доступ к сетевой папке вряд ли удастся. Чуть позже, попробую проверить с доменной учетной записью или с NetworkService.

Спасибо!
20 мар 15, 11:00    [17408690]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с правами доступа для работы с ssis.  [new]
forel
Member

Откуда:
Сообщений: 29
SQL2008, спасибо за важное замечание.
В моем случае данный пакет в джоб не добавлен.
20 мар 15, 11:02    [17408701]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с правами доступа для работы с ssis.  [new]
Glory
Member

Откуда:
Сообщений: 104760
forel
Следуя вашей подсказке, буду смотреть в сторону настройки учетной записи, от которой стартует компонент Database Engine. Верно? :) Сейчас это LocalSystem, а для нее, если я не ошибаюсь, настроить доступ к сетевой папке вряд ли удастся. Чуть позже, попробую проверить с доменной учетной записью или с NetworkService

Вы это из catalog.executions узнали ?
20 мар 15, 11:05    [17408725]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с правами доступа для работы с ssis.  [new]
forel
Member

Откуда:
Сообщений: 29
Glory,
да, именно: каталог ssis - reports - standart reports - all executions.
Надо было бы мне выложить больше информации из отчета:
20.03.2015 10:36:11 "Data Flow Task:Information: The processing of file ""\\xx.xx.xx.xx\Test_folder\test_file.fic"" has started.
"
20.03.2015 10:36:11 "Data Flow Task:Warning: Access is denied.
"
20.03.2015 10:36:11 "Data Flow Task:Error: Cannot open the datafile ""\\xx.xx.xx.xx\Test_folder\test_file.fic"".
"
20.03.2015 10:36:11 "Data Flow Task:Error: Flat File Destination failed the pre-execute phase and returned error code 0xC020200E.
"
20.03.2015 10:36:11 "Package:Warning: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but the number of errors raised (2) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
"
20 мар 15, 11:10    [17408754]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с правами доступа для работы с ssis.  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
forel

Где найти информацию о том, в контексте какой учетной записи выполняется ssis пакет если он запущен из приложения?


Учетка может быть задана в джобе, который пускает пакет, если она не задана, то пускается из-под учетки службы SSIS.
20 мар 15, 12:05    [17409170]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с правами доступа для работы с ssis.  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
forel
Glory,
не работает - имею ввиду, что на сетевой папке не создается текстовый файл (при указании локальной папки файл создается).

Из приложения запускаю хранимую процедуру вида:
Declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Package.dtsx', @execution_id=@execution_id OUTPUT, @folder_name=N'Oracle_Integration_Packages', @project_name=N'Integration Services Project1', @use32bitruntime=False, @reference_id=Null
Select @execution_id
DECLARE @var0 sql_variant = N'0001'
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,  @object_type=30, @parameter_name=N'File_Number', @parameter_value=@var0
DECLARE @var1 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,  @object_type=50, @parameter_name=N'LOGGING_LEVEL', @parameter_value=@var1
EXEC [SSISDB].[catalog].[start_execution] @execution_id
GO


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

Мне бы очень помогли ссылки на подробный справочный материал по моей проблеме.

Спасибо.


Зачем такие танцы с бубном, есть шаг джобы для запуска пакета. У пакета надо задать параметры, в этом шаге их указать.
20 мар 15, 12:07    [17409187]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с правами доступа для работы с ssis.  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
a_voronin,

У вас 2012
1) Сделайте Ощт
2) Запустите, из приложений start job
3) Посмотрите SSIS каталоге протокол исполнения со всеми ошибками
20 мар 15, 12:09    [17409194]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить