создание бэкапа в MSSQL
От: yajohn71  
Дата: 03.12.12 16:47
Оценка:
Имеется база MSSQL2005. Ии дельфи (через ADO) создаю бэкап для дальнейшего использования следующим образом:
BACKUP DATABASE [MyDB] TO  DISK = N'C:\Users\User\AppData\Local\Temp\data.bak' WITH INIT, SKIP, NAME = N'MyBackup'

На что получаю ошибку прав доступа к C:\Users\User\AppData\Local\Temp (systemerror 5)
С папками, к которым прописаны полные права доступа для всех проблем не возникает. Специфика такова, что требовать от пользователя создать папку с нужными правами я не могу.
А теперь, собственно, вопрос. Как программно получить путь к папке или создать папку к которой бы имели бы права доступа и мое приложение и MSSQL?
delphi mssql
Re: создание бэкапа в MSSQL
От: BlackEric http://black-eric.lj.ru
Дата: 03.12.12 16:49
Оценка:
Здравствуйте, yajohn71, Вы писали:

Y>Имеется база MSSQL2005. Ии дельфи (через ADO) создаю бэкап для дальнейшего использования следующим образом:

Y>
Y>BACKUP DATABASE [MyDB] TO  DISK = N'C:\Users\User\AppData\Local\Temp\data.bak' WITH INIT, SKIP, NAME = N'MyBackup'
Y>

Y>На что получаю ошибку прав доступа к C:\Users\User\AppData\Local\Temp (systemerror 5)
Y>С папками, к которым прописаны полные права доступа для всех проблем не возникает. Специфика такова, что требовать от пользователя создать папку с нужными правами я не могу.
Y>А теперь, собственно, вопрос. Как программно получить путь к папке или создать папку к которой бы имели бы права доступа и мое приложение и MSSQL?

А зачем вашему приложению права на доступ к этой папке?
https://github.com/BlackEric001
Re: создание бэкапа в MSSQL
От: vmpire Россия  
Дата: 03.12.12 17:12
Оценка:
Здравствуйте, yajohn71, Вы писали:

Y>Имеется база MSSQL2005. Ии дельфи (через ADO) создаю бэкап для дальнейшего использования следующим образом:

Y>
Y>BACKUP DATABASE [MyDB] TO  DISK = N'C:\Users\User\AppData\Local\Temp\data.bak' WITH INIT, SKIP, NAME = N'MyBackup'
Y>

Y>На что получаю ошибку прав доступа к C:\Users\User\AppData\Local\Temp (systemerror 5)
Y>С папками, к которым прописаны полные права доступа для всех проблем не возникает. Специфика такова, что требовать от пользователя создать папку с нужными правами я не могу.
Y>А теперь, собственно, вопрос. Как программно получить путь к папке или создать папку к которой бы имели бы права доступа и мое приложение и MSSQL?
Вы можете создать папку обычным путём через Directory.CreateDirectory выдав права доступа для того, кого надо.
А надо — для пользователя, под которым запущено ваше приложение и для позьзователя, под которым крутится MSSQL.
Ну или everyone/full control.
Получить доступ к готовой папке, если его нет, вы можете только будучи админом или имперсонировавшить в того, у кого есть права доступа.
Re[2]: создание бэкапа в MSSQL
От: yajohn71  
Дата: 03.12.12 17:13
Оценка:
BE>А зачем вашему приложению права на доступ к этой папке?
Чтобы упаковать образ БД в архив и мылом отправить разработчику (то бишь мне) для анализа. Я понимаю что звучит несколько странно, но таковы требования заказчика.
Специфика проекта в том, что конечные юзеры (врачи) — абсолютные нули в ИТ, даже менее чем нули, для конечного пользователя все должно происходить абсолютно прозрачно, одно нажатие кнопки — и саппорт реквест ушел мылом к разработчиком, а они разберутся.
Re[3]: создание бэкапа в MSSQL
От: LuciferArh Россия  
Дата: 04.12.12 05:40
Оценка:
Здравствуйте, yajohn71, Вы писали:

BE>>А зачем вашему приложению права на доступ к этой папке?

Y>Чтобы упаковать образ БД в архив и мылом отправить разработчику (то бишь мне) для анализа. Я понимаю что звучит несколько странно, но таковы требования заказчика.

А кто мешает сделать бэкап базы средствами самого сервера и его же средствами отправить созданный бэкап почтой? И даже упаковать его можно перед отправкой, если разрешить на сервере xp_cmdshell.
... << RSDN@Home 1.2.0 alpha 5 rev. 43>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.