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

Откуда: Москва
Сообщений: 1139
День добрый,

создал харнимку на языке C#. Надо будет удалять файлы с диска. Текст хранимки:
using System;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;

public partial class StoredProcedures
{
    [Microsoft.SqlServer.Server.SqlProcedure]
    [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
    public static void udsp_KillFileOnDisc(SqlString FilePath)
    {
        // Удаляем файл с диска
        File.Delete(FilePath.ToString());
    }
};


Выполняю команду через SSMS
DECLARE @FILE_PATH NVARCHAR(100);
SET @FILE_PATH = '\\chaos\OPERATIONS\ReportingFiles\Test.txt';

EXECUTE dbo.udsp_KillFileOnDisc @FILE_PATH;


Ругается. Пишет:
Msg 6522, Level 16, State 1, Procedure udsp_KillFileOnDisc, Line 0
A .NET Framework error occurred during execution of user-defined routine or aggregate "udsp_KillFileOnDisc":
System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
System.Security.SecurityException:
at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
at System.Security.CodeAccessPermission.Demand()
at System.IO.File.Delete(String path)
at StoredProcedures.udsp_KillFileOnDisc(SqlString FilePath)
.


Какие разрешения надо настроить?
Наши сисадмины уверяют что у меня и у сервера есть разрешения на работу с указанной папкой. Однако же все равно ругается.
16 май 14, 14:55    [16027737]     Ответить | Цитировать Сообщить модератору
 Re: Разрешение хранимке на удаление файла  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
как сборка создана? с какими разрешениями?
16 май 14, 15:03    [16027797]     Ответить | Цитировать Сообщить модератору
 Re: Разрешение хранимке на удаление файла  [new]
Gena928
Member

Откуда: Москва
Сообщений: 1139
Knyazev Alexey
как сборка создана? с какими разрешениями?


Ламерский вопрос: а где посмотреть?
Я просто публикую хранимку из Visual Studio. Про разрешения сборки даже и мыслей небыло.
16 май 14, 15:07    [16027817]     Ответить | Цитировать Сообщить модератору
 Re: Разрешение хранимке на удаление файла  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
select name, permission_set_desc from sys.assemblies
16 май 14, 15:09    [16027837]     Ответить | Цитировать Сообщить модератору
 Re: Разрешение хранимке на удаление файла  [new]
Gena928
Member

Откуда: Москва
Сообщений: 1139
Knyazev Alexey,

Результат.

К сообщению приложен файл. Размер - 17Kb
16 май 14, 15:17    [16027908]     Ответить | Цитировать Сообщить модератору
 Re: Разрешение хранимке на удаление файла  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
SAFE является рекомендованной установкой разрешений для сборок, 
которые выполняют задачи вычисления и управления данными без доступа к ресурсам вне SQL Server. 
16 май 14, 15:19    [16027931]     Ответить | Цитировать Сообщить модератору
 Re: Разрешение хранимке на удаление файла  [new]
Gena928
Member

Откуда: Москва
Сообщений: 1139
Knyazev Alexey,

ОК, спасибо большое.
16 май 14, 15:32    [16028056]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить