![]() |
|
IT и Связь Обсуждение "айтишных" вопросов и средств связи |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 |
Активный Участник
|
![]()
Подскажите кто знает....
Есть Stored Procedure написанная на C#, из которой нужно кое-что в файл скинуть либо на локальном компе где сам SQL Server установлен, либо на сетку. В обоих случаях нужно правильно реализовать доступ к русурсам файловой системы чтобы это было возможно, т.к. по умолчанию SQL Stored Procedure не имеет доступа на создание каких-либо файлов где-либо. Поскажите, как реализовать правильное предоставление доступа, чтобы в файл можно было-бы писать... Если я в тупую вызываю нечто типа: Код:
TextWriter tw = new StreamWriter("c:\\temp\\Test.txt"); tw.WriteLine("Hi!"); tw.Close(); Код:
Msg 6522, Level 16, State 1, Procedure Test, Line 0 A .NET Framework error occurred during execution of user-defined routine or aggregate "Test": 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.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.StreamWriter.CreateFile(String path, Boolean append) at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) at System.IO.StreamWriter..ctor(String path) at StoredProcedures.Test(Int32 ID) |
![]() |
![]() |
Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок |
![]() |
#2 |
Спам-робот
|
![]()
Это не Скульная ошибка, это ошибка .NET
Аккаунт, под которым запущен Скуль, имеет права писать туда? Когда создавал Assembly, не забыл сказать WITH PERMISSION_SET = EXTERNAL_ACCESS? Курить вот это http://msdn2.microsoft.com/en-us/library/ms345101.aspx
__________________
My Church is Black... Последний раз редактировалось YellowMan, 23.05.2008 в 10:48. |
![]() |
![]() |
![]() |
#3 |
Активный Участник
|
![]() |
![]() |
![]() |
![]() |
#5 | |
Активный Участник
|
![]()
коварный ответчик...
![]() vertex добавил 23.05.2008 в 12:18 Цитата:
failed because assembly is not authorized for PERMISSION_SET = EXTERNAL_ACCESS. The assembly is authorized when either of the following is true: the database owner (DBO) has EXTERNAL ACCESS ASSEMBLY permission and the database has the TRUSTWORTHY database property on; or the assembly is signed with a certificate or an asymmetric key that has a corresponding login with EXTERNAL ACCESS ASSEMBLY permission. If you have restored or attached this database, make sure the database owner is mapped to the correct login on this server. If not, use sp_changedbowner to fix the problem. Ок, вроде я раскопал где это EXTERNAL ACCESS ASSEMBLY свойство устанавливается: В свойствах самого сервера, Permissions, выбрать пользователя, и установить свойство External access assembly в состояние ON для Grant. А вот на счет того чтобы установить TRUSTWORTHY для базы данных - такого найти не могу. Не подскажете куда смотреть? vertex добавил 23.05.2008 в 12:42 Все, нашел: Код:
ALTER DATABASE [MyDatabase] SET TRUSTWORTHY ON; GO ![]() Последний раз редактировалось vertex, 23.05.2008 в 11:43. Причина: Добавлено сообщение |
|
![]() |
![]() |
![]() |
#6 |
дядечка предпенсионного возраста
|
![]()
__________________
Ну, разумеется, - подхватил Степан Аркадьич. - Но в этом-то и цель образования: изо всего сделать наслаждение. (c) Толстой Л.Н. |
![]() |
![]() |
![]() |
#7 |
Спам-робот
|
![]()
Курить надо BOL.
Можно проще: CREATE ASSEMBLY assembly_name ... WITH PERMISSION_SET = EXTERNAL_ACCESS
__________________
My Church is Black... |
![]() |
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщ. |
Переезжаю, как сохранить доступ в интернет? | natalja0809 | IT и Связь | 2 | 19.12.2007 23:22 |
Доступ к финансовым продуктам для вновь приехавших | tadpole | Финансы и Бизнес | 2 | 02.10.2007 13:40 |
Как закрыть доступ граберу | Roslin | IT и Связь | 6 | 30.01.2007 17:34 |
Интернет доступ через модем | Arte | IT и Связь | 25 | 18.11.2004 14:48 |