Я пытаюсь настроить канал данных из базы данных SQL (PeopleSoft) в файл CSV для загрузки в SAP PCM. Мне нужно, чтобы этот процесс запускался на основе adhock, поэтому ему нужно вытащить данные, а не планировать их или нажимать через приложение, такое как SSIS или Control M.
В принципе, SAP PCM имеет возможность разрешать настраиваемое кодирование (VBSCRIPT), которое позволит нам выложить оболочку, если потребуется, для запуска любого типа стороннего скрипта, необходимого для извлечения SQL QUERY, который может быть связан с кнопкой в самом приложении, поэтому конец пользователь может просто тригером по мере необходимости.
Я попытался запустить SQL непосредственно из SAP PCM, используя учетную запись пользователя, которая имеет привилегии для доступа к базе данных PeopleSoft с использованием единого входа. Как и следовало ожидать, это работает и выводятся требуемые данные.
Проблема в том, что я не хочу предоставлять конечным пользователям одинаковый уровень доступа... поэтому я создал учетную запись службы NT, которая имеет правильный уровень доступа к базе данных. - По какой-то причине мы не используем аутентификацию SQL, поэтому не можем просто иметь учетную запись sql.
Проблема, с которой я столкнулся, заключается в том, чтобы заставить SQL-скрипт работать как учетная запись службы... Я посмотрел в RUN AS.. но это заставит пользователя ввести пароль учетной записи службы, который побеждает точку. Кроме того, альтернативы не поддерживаются после XP - мы используем W7.
Я посмотрел на службы Windows, которые могут содержать ответ, но никогда не создавали его, прежде чем я начну с нуля, и я не уверен, что это лучший способ продвижения вперед.
Поэтому возникает вопрос: можно ли выполнить запрос SQL, используя учетную запись службы, которая не запрашивает у пользователя пароль? - Я полагаю, что я мог бы создать пароль в exe, чтобы он не сохранял чистый текст, если это необходимо.
Есть ли у кого-нибудь пример VBSCRIPT (или другой), который позволил бы мне это сделать?
благодаря
Я не очень хорошо знаком с используемой системой, но я только что написал небольшой пакетный файл, который использует bcp для копирования хранимой процедуры SQL в CSV. Файл содержит имя пользователя и PW.
Это будет выглядеть примерно так:
bcp "exec [your SQL SP]" queryout output.csv -S[your server] -U[username] -P[PW] -c -t,
Как вы говорите, не очень безопасно (мой будет работать как запланированное задание), но может быть, есть еще один способ сделать что-то по этому поводу? Возможно, зашифруйте командный файл. Там бесплатная программа здесь, что, как представляется, сделать это. Из рекламного ролика:
Advanced BAT to EXE Converter не только шифрует ваш код, но вы можете создать настоящую Windows.EXE-программу.