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

Откуда:
Сообщений: 17
1)
Вот упрощенный вариант программки

static void Main(string[] args)
{
File.Move(@"C:\1.txt", @"C:\2.txt");
}

Запускаю в SQL Server процедуре так ==>
exec master..xp_cmdshell 'call "C:\1.exe" '

Падает с ошибкой System.UnauthorizedAccessException: Access to the path is denied

Не ожидала такого никак, так как например экспорт в XML с помощью bcp из SQL Server работает на ура в любые каталоги компьютера... А тут на тебе, нет доступа.. Как так?

SQL Server 2008 R2, локально установленный.

2)
Вторая проблема возможно имеет ту же причину: есть программка на C# для шифрования с помощью Windows сертификатов. Отдельно опять же работает на ура, а если запускаю из SQL Server сертификаты не находит. Как будто их просто нет.

Что за странные такие права у SQL Server ?

Спасибо заранее!
1 авг 12, 17:57    [12948243]     Ответить | Цитировать Сообщить модератору
 Re: System.UnauthorizedAccessException Запуск C# программки в процедуре SQL Server  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
butterfly1984
Что за странные такие права у SQL Server ?
У него нет прав. Права есть у учетной записи, под которой он работает.
1 авг 12, 17:58    [12948252]     Ответить | Цитировать Сообщить модератору
 Re: System.UnauthorizedAccessException Запуск C# программки в процедуре SQL Server  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
butterfly1984,
cmdshell выполняется под учёткой sql server.Какие права дали , так и работает.
1 авг 12, 18:00    [12948271]     Ответить | Цитировать Сообщить модератору
 Re: System.UnauthorizedAccessException Запуск C# программки в процедуре SQL Server  [new]
Glory
Member

Откуда:
Сообщений: 104760
butterfly1984
Не ожидала такого никак, так как например экспорт в XML с помощью bcp из SQL Server работает на ура в любые каталоги компьютера... А тут на тебе, нет доступа.. Как так?

Потому что bcp вы запускаете у себя на машине и под своей учетной записью.
А exec master..xp_cmdshell 'call "C:\1.exe" ' запускается на сервере и под учетной записью сервера.
1 авг 12, 18:01    [12948281]     Ответить | Цитировать Сообщить модератору
 Re: System.UnauthorizedAccessException Запуск C# программки в процедуре SQL Server  [new]
butterfly1984
Member

Откуда:
Сообщений: 17
Glory,

bcp тоже запускаю из SQL Server (и все работает отлично)

select @save_file = 'bcp "'+@Sql+'" queryout "'+@file_name ......
EXEC xp_cmdshell @save_file

Вобще у меня все локально, нет у меня другого сервера кроме моей локальной машины. Так что какая учетная запись сервера может быть, не понимаю.
1 авг 12, 18:09    [12948334]     Ответить | Цитировать Сообщить модератору
 Re: System.UnauthorizedAccessException Запуск C# программки в процедуре SQL Server  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
butterfly1984
Так что какая учетная запись сервера может быть, не понимаю.
И что мешает посмотреть?
1 авг 12, 18:11    [12948344]     Ответить | Цитировать Сообщить модератору
 Re: System.UnauthorizedAccessException Запуск C# программки в процедуре SQL Server  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
butterfly1984,

Любой процесс в винде , а сервер это процесс , запускается под учётной записью.
Откройте список сервисов и вы увидите это.
1 авг 12, 18:13    [12948364]     Ответить | Цитировать Сообщить модератору
 Re: System.UnauthorizedAccessException Запуск C# программки в процедуре SQL Server  [new]
butterfly1984
Member

Откуда:
Сообщений: 17
Гавриленко Сергей Алексеевич,

Я при коннекте делаю "Windows Authentication", я думала что это значит что я под своей учетной записью коннекчусь...
1 авг 12, 18:14    [12948374]     Ответить | Цитировать Сообщить модератору
 Re: System.UnauthorizedAccessException Запуск C# программки в процедуре SQL Server  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
butterfly1984
Гавриленко Сергей Алексеевич,

Я при коннекте делаю "Windows Authentication", я думала что это значит что я под своей учетной записью коннекчусь...
Да, "Windows Authentication" примерно это и означает, но никакого отношения к учетной записи сервиса MSSQL не имеет.
1 авг 12, 18:16    [12948387]     Ответить | Цитировать Сообщить модератору
 Re: System.UnauthorizedAccessException Запуск C# программки в процедуре SQL Server  [new]
butterfly1984
Member

Откуда:
Сообщений: 17
Ken@t
butterfly1984,

Любой процесс в винде , а сервер это процесс , запускается под учётной записью.
Откройте список сервисов и вы увидите это.


Гавриленко Сергей Алексеевич
Да, "Windows Authentication" примерно это и означает, но никакого отношения к учетной записи сервиса MSSQL не имеет.


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

Спасибо!!!
1 авг 12, 18:36    [12948509]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить