#sql-server #ssis
#sql-сервер #ssis
Вопрос:
Я пытаюсь выполнить командный файл в SSIS. Этот пакетный файл расположен на сервере в сети. Мне также нужно ввести другого пользователя и пароль.
Я попытался настроить исполняемый файл следующим образом networkservername location, и я попробовал cmd.exe и поместите команду runas в качестве аргумента. Ни то, ни другое не сработало, и я не нахожу четких инструкций о том, как этого добиться. Буду признателен за любую помощь.
Это ошибка, которую я получаю, поэтому я не думаю, что она настроена точно
Комментарии:
1. Почему вам нужно запускать в нем под другой учетной записью пользователя?
2. Поскольку bat-задания выполняют вставки в рабочие таблицы sql. Я могу без проблем запустить bat-задание, когда я зарегистрирован на сервере.
3. Как вы выполняете пакеты ssis? Задание агента SQL?
4. Прямо сейчас я тестирую на своем локальном компьютере, но в конечном итоге он будет выполняться как задание агента SQL
5. ОК. Я предполагаю, что ваша учетная запись пользователя не имеет доступа к базе данных. вам необходимо настроить это, а также для учетной записи агента sql server (когда вы начинаете выполнение пакета ssis через задание агента sql)
Ответ №1:
Я не ставлю это в заслугу, но я взял это из другого ответа stackoverflow.
Вот способ script task выполнить процесс от имени кого-то другого:
System.Diagnostics.Process proc = new System.Diagnostics.Process();
System.Security.SecureString ssPwd = new System.Security.SecureString();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = "filename"; //use the fullpath
proc.StartInfo.Arguments = "args...";
proc.StartInfo.Domain = "domainname";
proc.StartInfo.UserName = "username";
string password = "user entered password";
for (int x = 0; x < password.Length; x )
{
ssPwd.AppendChar(password[x]);
}
password = "";
proc.StartInfo.Password = ssPwd;
proc.Start();