|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
Утро доброе! Так в этом и дело, уважаемый Glory, что вышеуказанная строка содержится именно в пользовательской SP, доступ на которую моей программе дан!.. Может быть, дело в ключе /E? Может, надо строго /Usa /Ppassword? А если пароль на sa отсутствует (ну вот такая дикая ситуация..)? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2002, 07:43 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
А если пароль на sa присутствует, можно его явно в xp_cmdshell прописать? Попробуй зайти на форум по SQL, набрать в строке поиска xp_cmdshell (проблема не в Дельфях). Не может быть, чтобы никто с этим не сталкивался. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2002, 08:49 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
Господа, по ходу работы возникают новые проблемы. Я нашел, что для того, чтобы мне, не сисадмину, запустить cmdshell, надо или в Server Agent делать job и давать мне на него права (я правильно понял?), или использовать xp_sqlagent_proxy_account, так? Но ни то, ни другое мне сделать не дадут!... Как быть? Может, есть другой способ запустить пакет, кроме как через cmdshell (похоже, что-то моему админу в нем не нравится)? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2002, 10:19 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
Давайте сначала Имеем пользователя - ни sysadmin, ни dbo Задача - позвволить ему запускать внешнее приложение на сервере из T-SQL. 1. Для запуска внешнего приложения будем использовать xp_cmdshell 2. Т.к. такой пользователь не имеет прав непосредственно запускать xp_cmdshell, то создаем обыкновенную пользовательскую процедуру, вроде такого create procedure dbo.sp_startmyapp as exec master..xp_cmdshell 'dir с:\*.*' go 3. Даем пользователю право на запуск dbo.sp_startmyapp 4. Т.к. наш пользователь не sysadmin, то запускаемое приложение (в нашем примере 'dir *.*') будет работать в контексте безопасности SQL Server Agent proxy account. Этот аккаунт задается в EM в свойствах Server Agent-а или с помощью xp_sqlagent_proxy_account. !NB! Данная процедура не будет выдавать никаких ошибок, если имя/пароль аккаунта заданы неверно, например, с включенным CapsLock. 5. При выполнении всех шагов и если SQL Server Agent proxy account имеет нужные права на с:\, то пользователь, запуская наш пример, exec dbo.sp_startmyapp должен получить содержимое директории с:\ 6. Все дальнейшие ошибки есть уже ошибки запущенного приложения У меня все это работает MS SQL2000SP2, Win2000 AdvServ SP2 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2002, 10:55 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
//Переключаемся на системную БД Dm1.ManufactureCommand.CommandText:='use msdb'; Dm1.ManufactureCommand.Execute; //Запускаем задание Dm1.ManufactureCommand.CommandText:='EXEC sp_start_job @job_name = "Manufacture"'; Dm1.ManufactureCommand.Execute; //Переключаемся в пользовательскую БД Dm1.ManufactureCommand.CommandText:='use Calculation'; Dm1.ManufactureCommand.Execute; //Сообщаем пользователю Кстати, о птичках про всякие "Login Failed" - Permissions Execute permissions default to the public role in the msdb database. A user who can execute this procedure and is a member of the sysadmin fixed role can start any job. A user who is not a member of the sysadmin role can use sp_start_job to start only the jobs he/she owns. When sp_start_job is invoked by a user who is a member of the sysadmin fixed server role, sp_start_job will be executed under the security context in which the SQL Server service is running. When the user is not a member of the sysadmin fixed server role, sp_start_job will impersonate the SQL Server Agent proxy account, which is specified using xp_sqlagent_proxy_account. If the proxy account is not available, sp_start_job will fail. This is only true for Microsoft® Windows NT® 4.0 and Windows 2000. On Windows 9.x, there is no impersonation and sp_start_job is always executed under the security context of the Windows 9.x user who started SQL Server. Удачи, рад помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2002, 15:14 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
Доброе утро, Господа! Огромное спасибо всем за советы, они мне очень помогли! Проблема решилась сама собой, так что тему, наверное, можно закрывать. Еще раз благодарю всех, кто принимал участие в обсуждении. Был рад с вами общаться. Удачи всем! P.S. "О, сколько нам открытий чудных готовит программизма дух..." ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2002, 08:33 |
|
|
start [/forum/topic.php?fid=58&msg=32038935&tid=2119927]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 271ms |
0 / 0 |