powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с правами в скрипте пакета SSIS
33 сообщений из 33, показаны все 2 страниц
Проблема с правами в скрипте пакета SSIS
    #39786818
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую пакеты SSIS со встроенным скриптом. Скрипт копирует файлы из "расшаренных" папок, на локальный диск. Но столкнулся с непониманием с какими правами запускается скрипт. Пакет я запускаю из хранимой процедуры на транзакте.
Получается что когда пакет запускается от имени доменного пользователя, из под которого запущен сервер все копируется без проблем. Но когда я запускаю пакет от своего имени (хотя права на файлы у меня тоже есть), то у меня получается ошибка доступа.

Поясните пожалуйста под чьими правами запускаются скрипты в пакете? И каким образом можно сделать чтобы они запускались с правами пользователя, который подключился к базе данных?
(Sql Server 2017)
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39787335
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем если запустить пакет через задание (job), то он тоже корректно отрабатывает и копирует файлы
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39787350
Alexander Titkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lex452,

Запускайте свою хранимку тоже через job, вроде как это единственный способ заставить работать имперсонацию
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39787352
Alexander Titkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Точнее так job->ssis(run as login)->stored procedure->ssis
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39787354
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Titkin,

проблема в том что пакет с параметрами, и как я понимаю нужно под каждое изменение параметров создавать новое задание, а это подход мне не нравится. Пользователь через ПО запускает хранимку которая запускает пакет с параметрами. А реализовывать это через JOB мне кажется костылем
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39787355
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно попробовать использовать пользователей уровня приложения, если получится отпишусь
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39787366
Alexander Titkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lex452,

Параметры может читать ваша хранимка из таблицы( по сути очередь) и запускать с ними пакет. Приложение просто пихает задачу в очередь.
По окончании выставляет задаче Выполнено.

Если это не подходит, то копайте в сторону делигирования, double hop и т.п. Проблема именно с этим. Возможно, у вас получится заставит integration servises пробрасывать учетку, запустившую хранимку.
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39787682
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452,

Любая операция делается под каким-то юзером. Пакет запускается либо под юзером службы SSIS, либо если вы специально настраивали, то под конкретным оператором.

Эти юзера должны иметь права на файловую систему, в которую лезет пакет.

Лучше всего создать специального юзера, сделать под него оператора и дать ему права на папки.
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39787690
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

Юзера доменного или sql сервера? Как я дам серверному пользователю права на папку? Повторюсь что мне нужно запускать пакет из транзакта
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39787742
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452a_voronin,

Юзера доменного или sql сервера? Как я дам серверному пользователю права на папку? Повторюсь что мне нужно запускать пакет из транзакта

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

Вы понимаете, что есть служба и что она работает под аккаунтом? И что доступ в папку должен быть дан этому аккаунту. И ещё есть оператор -- знаете, что это такое?
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39787749
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

К базе пользователь подключается по windows аутентификации, а что такое оператор я не знаю
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39787779
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452,

по памяти:
запуск ssis пакета это трансляция запуска DtExec.exe в операционную систему.
если осуществляется запуск из t-sql аля exec ssisdb.start_execution то у вас DtExec запустится из под учетки службы SQL Server

если запускаете джобом SQL Agent, то там в зависимости от того настроено ли использование учетных данных для шага задания.
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39787841
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lex452Пакет я запускаю из хранимой процедуры на транзакте.
А как вы его запускаете. Через выполнение dtexec в shell, или через создание executiщт в ssisdb и запуска ее потом?
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39788037
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ferdipux,

Через execution id. Просто ситуация дурацкая. Я подключаюсь к серверу под своим доменным пользователем, права на файлы у меня есть. Но скрипт пакета их не копирует
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39790449
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю пару моментов, которые окончательно ставят меня в тупик.

Создал скрипт в пакете, который показывает имя пользователя и копирует файл по сетевому пути на локальный диск.
Пакет запускаю через transact-sql. Подключаюсь к серверу под доменной учеткой.
Когда запускаю на своем компьютере, получаю ошибку нет доступа к файлу,
когда захожу на сервер через удаленный рабочий стол, тоже под своей доменной учеткой, и выполняю скрипт запуска пакета, то файл копируется.
В обоих случаях скрипт выводит мое доменной имя пользователя. Пакет развернут в SSIS catalog.

Не понимаю как такое возможно, что под одной и той же учеткой, на одном и том же SQL сервере получаются разные результаты???
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39790472
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452Добавлю пару моментов, которые окончательно ставят меня в тупик.

Создал скрипт в пакете, который показывает имя пользователя и копирует файл по сетевому пути на локальный диск.
Пакет запускаю через transact-sql. Подключаюсь к серверу под доменной учеткой.
Когда запускаю на своем компьютере, получаю ошибку нет доступа к файлу,
когда захожу на сервер через удаленный рабочий стол, тоже под своей доменной учеткой, и выполняю скрипт запуска пакета, то файл копируется.
В обоих случаях скрипт выводит мое доменной имя пользователя. Пакет развернут в SSIS catalog.

Не понимаю как такое возможно, что под одной и той же учеткой, на одном и том же SQL сервере получаются разные результаты???Хм, какая то фантастическая история :-)

1. Так, значит, скрипт - это скрипт-таск в dts пакете, да? В нём на C# что то написано.

2. "Показывает имя пользоователя" - куда показывает, пишет в какую то таблдицу/лог?

3. "Пакет запускаю через transact-sql" - это что значит? Например, xm_cmdshell 'DTExec.exe ...'? Или ещё как то?

4. "Когда запускаю на своем компьютере" - имеется в виду "запускаю SSMS на своем компьютере и запускаю пакет тем же скриптом на transact-sql"?

5. "захожу на сервер через удаленный рабочий стол ... выполняю скрипт запуска пакета" - имеется в виду "запускаю SSMS и запускаю пакет тем же скриптом на transact-sql"?
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39790474
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452Ferdipux,

Через execution id.Это не ответ на вопрос "А как вы его запускаете?".
Если вслух произнести "execution id", пакет не запустится, явно нужно что то ещё сделать :-)
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39790477
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, какая то фантастическая история :-)

1. Так, значит, скрипт - это скрипт-таск в dts пакете, да? В нём на C# что то написано.

2. "Показывает имя пользоователя" - куда показывает, пишет в какую то таблдицу/лог?

3. "Пакет запускаю через transact-sql" - это что значит? Например, xm_cmdshell 'DTExec.exe ...'? Или ещё как то?

4. "Когда запускаю на своем компьютере" - имеется в виду "запускаю SSMS на своем компьютере и запускаю пакет тем же скриптом на transact-sql"?

5. "захожу на сервер через удаленный рабочий стол ... выполняю скрипт запуска пакета" - имеется в виду "запускаю SSMS и запускаю пакет тем же скриптом на transact-sql"?[/quot]
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Package.dtsx',
    @execution_id=@execution_id OUTPUT,
    @folder_name=N'Deployed Projects',
      @project_name=N'Integration Services Project1',
    @use32bitruntime=False,
      @reference_id=Null
Select @execution_id
DECLARE @var0 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
    @object_type=50,
      @parameter_name=N'LOGGING_LEVEL',
      @parameter_value=@var0
EXEC [SSISDB].[catalog].[start_execution] @execution_id
GO



1. Да скрипт на C#
2. Я создаю файл с именем пользователя File.Create(Environment.UserName)
3. Привел пример выше
4. Да, запускаю SSMS на своем компьютере и запускаю пакет тем же скриптом на transact-sql
и второй вариант запускаю SSMS на самом сервере к которому подключен через удаленный рабочий стол и запускаю пакет тем же скриптом на transact-sql
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39790485
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex4524. Да, запускаю SSMS на своем компьютере и запускаю пакет тем же скриптом на transact-sql
и второй вариант запускаю SSMS на самом сервере к которому подключен через удаленный рабочий стол и запускаю пакет тем же скриптом на transact-sqlНа всякий случай, добавьте в начало скрипта такую строчку, а то мало ли что :-)
Код: sql
1.
select @@SERVERNAME, SUSER_NAME(), SYSTEM_USER
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39790487
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvglex4524. Да, запускаю SSMS на своем компьютере и запускаю пакет тем же скриптом на transact-sql
и второй вариант запускаю SSMS на самом сервере к которому подключен через удаленный рабочий стол и запускаю пакет тем же скриптом на transact-sqlНа всякий случай, добавьте в начало скрипта такую строчку, а то мало ли что :-)
Код: sql
1.
select @@SERVERNAME, SUSER_NAME(), SYSTEM_USER


Не совсем понимаю, зачем? Имя сервера и так известно, а скрипт я запускаю под одним и тем же пользователем.
я проверял ORIGINAL_login он одинаковый.
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39790490
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452Не совсем понимаю, зачем? Имя сервера и так известно, а скрипт я запускаю под одним и тем же пользователем.
я проверял ORIGINAL_login он одинаковый.Вот именно что бы проверить, что эти 2 запуска делаются под одним пользователем и на одном сервере. И не убирать эту строчку из скрипта (пока проблема не будет решена).

В 99% случаев такое заканчивается через 3 дня исследований тем, что "ой, а я же на другом сервере запустил", "ой, а я же там под другим логином".
Но можно, конечно, не вставлять, съэкономить 2 секунды, и заняться дизассемблированоем ядра :-)
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39790491
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

Хорошо, я попробую. Просто этот пакет развернут только на одном сервере. И я подключаюсь под доменным пользователем, так как пользователей sql там в принципе нет
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39790492
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452Просто этот пакет развернут только на одном сервере. И я подключаюсь под доменным пользователем, так как пользователей sql там в принципе нетПонятно. Ну мало ли.

Да, а как вы получаете ошибку? В логах выполнения смотрите? Вдруг смотрите не те логи/не последние записи?
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39790493
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvglex452Просто этот пакет развернут только на одном сервере. И я подключаюсь под доменным пользователем, так как пользователей sql там в принципе нетПонятно. Ну мало ли.

Да, а как вы получаете ошибку? В логах выполнения смотрите? Вдруг смотрите не те логи/не последние записи?
Я в скрипте File.Copy обернул в try catch, так и получаю ошибку доступа. ex.Message пишу в файл, вот и вся магия. В логи вообще не смотрю
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39790897
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvglex452Просто этот пакет развернут только на одном сервере. И я подключаюсь под доменным пользователем, так как пользователей sql там в принципе нетПонятно. Ну мало ли.

Да, а как вы получаете ошибку? В логах выполнения смотрите? Вдруг смотрите не те логи/не последние записи?
Проверил как вы предложили. В обоих вариантах все одинаково. Если вдруг важно, проблема возникает только с сетевыми ресурсами. То есть когда поменял еще и конечный путь на сетевой диск, скрипт начал ругаться и на него
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39790957
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452,

сделайте уже некий delay в скрипте и посмотрите из под какой учетки у вас запускается ISServerExec.exe
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39791130
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_fflex452,

сделайте уже некий delay в скрипте и посмотрите из под какой учетки у вас запускается ISServerExec.exe
Что это значит delay? И вы про какой скрипт, запуска пакета или скрипт внутри пакета?
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39791134
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452,

скрипт внутри пакета, вам необходимо смоделировать ситуацию что бы скрипт работал некоторое время, что бы вы увидели под какой учеткой запущен исполняемый файл ISServerExec

хотя можете просто тупо вывести значение переменной System::UserName в лог.
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39791189
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

А System::UserName будет отличаться от Enviroment.UserName?
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39791209
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452,

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

я когда то сталкивался со следующей ситуацией: в коде transact-sql была инструкция execute as login = [domain\user], которая приводила к тому что пакет запускался из под учетки службы sql а не указанного пользователя. при этом если этот же пользователь запускал инструкцию вручную (без олицетворения) то в операционную систему уже транслировался его токен безопасности и пакет стартовал под его учетными данными
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39791258
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

Execute as я не использую, но ради интереса проверю
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39794373
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_fflex452,

скрипт внутри пакета, вам необходимо смоделировать ситуацию что бы скрипт работал некоторое время, что бы вы увидели под какой учеткой запущен исполняемый файл ISServerExec

хотя можете просто тупо вывести значение переменной System::UserName в лог.Username именно того пользователя из-под которого запускаю пакет. Вообще не понимаю как такое может быть
...
Рейтинг: 0 / 0
Проблема с правами в скрипте пакета SSIS
    #39794464
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452,

в таком случае, берете в руки ProcessMonitor от sysinternals, и врубаете трассу с фильтром на ProcessName = 'ISServerExec.exe' и смотрите в какие папки ломится процесс и под какими учетными данными и с каким результатом.

Чудес не бывает, вы явно где-то что то не учитываете.
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с правами в скрипте пакета SSIS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]