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

Откуда:
Сообщений: 81
Доброе время суток!

По условия задачи нужно, чтобы хранимая процедура (SQL-сервер) создавала каталог в Виртуальном каталоге для FileTable.
например: \\MyComp\SQLEXPRESS\TestDB\MyFiles\NewDir
Далее записать PathLocator нового каталога в специальную таблицу.

Проблема - не могу создать каталог средствами T-SQL.

Пробовал через OLE:

declare @fs int
declare @dir varchar(1000)
declare @PathName varchar(1000)
SET @PathName = '\\MyComp\SQLEXPRESS\TestDB\MyFiles\NewDir';

exec sp_OACreate 'Scripting.FileSystemObject', @fs out
	exec sp_OAMethod @fs, 'CreateFolder', @dir out, @PathName


Каталог не создается.

Просто любой другой каталог создается, этот - нет.

Пробовал просто сделать VBS скрипт:

Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CreateFolder "\\MyComp\SQLEXPRESS\TestDB\MyFiles\NewDir"


Это работает.

Пробовал менять разрешения для физического каталога и его подкаталогов - на которые отображается каталог FileTable.
Сервер работал от имени NETWORKSERVICE. Установил полные разрешения на физический каталог для этой записи - не помогло.
Перезапустил сервер от имени локально системы - тоже не помогло.

Пробовал сделать с помощью mklink символическую ссылку на каталог:

mklink /d c:\mydir \\MyComp\SQLEXPRESS\TestDB\MyFiles\NewDir

и создавать каталог, используя имя c:\mydir - не помогает.

Что еще можно попробовать? (Очень не хочу разрешать xp_cmdshell)
25 июл 14, 16:44    [16358848]     Ответить | Цитировать Сообщить модератору
 Re: FileTable и создание каталога  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
vinvin
Проблема - не могу создать каталог средствами T-SQL.

учетная щапись сиквела вообще имеет права на ето виртуальный каталог ?
25 июл 14, 16:53    [16358905]     Ответить | Цитировать Сообщить модератору
 Re: FileTable и создание каталога  [new]
Glory
Member

Откуда:
Сообщений: 104751
vinvin
Каталог не создается.

И вы прочитали сообщение об ошибке ?
25 июл 14, 16:59    [16358940]     Ответить | Цитировать Сообщить модератору
 Re: FileTable и создание каталога  [new]
vinvin
Member

Откуда:
Сообщений: 81
автор
учетная щапись сиквела вообще имеет права на ето виртуальный каталог ?


Нет на виртуальном каталоге никаких прав нет. Но есть физический каталог - тот, который назначается при назначении файловой группы в БЗД. Вот для него я и делал еще дополнительные права для NETWORKSERVICE. Но не помогло.
26 июл 14, 09:56    [16360481]     Ответить | Цитировать Сообщить модератору
 Re: FileTable и создание каталога  [new]
vinvin
Member

Откуда:
Сообщений: 81
автор
И вы прочитали сообщение об ошибке ?

Нет. Явно сообщение об ошибке не выдает.
Просто после запуска скрипта - тишина и все.
26 июл 14, 09:59    [16360484]     Ответить | Цитировать Сообщить модератору
 Re: FileTable и создание каталога  [new]
vinvin
Member

Откуда:
Сообщений: 81
Пока решил выйти из положения так:

1. Программа - запрашивает сервер (через хранимую процедуру) имя каталога для указанной FileTable.
2. Программа - создает каталог в указанном (возвращенном) каталоге и вызывает другую хранимую процедуру, в которую передает имя созданного каталога.
3. Хранимая процедура находит PathLocator этого каталога и регистрирует его в нужной таблице.

Если бы удалось создать каталог с помощью T-SQL, то двойного обращения к серверу удалось бы избежать.
26 июл 14, 10:08    [16360495]     Ответить | Цитировать Сообщить модератору
 Re: FileTable и создание каталога  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
Служба сиквела под какой учетной записью работает?
26 июл 14, 12:06    [16360657]     Ответить | Цитировать Сообщить модератору
 Re: FileTable и создание каталога  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
invm
Служба сиквела под какой учетной записью работает?
Не заметил в стартовом сообщении ответ на этот вопрос.

В общем, Local System и Network Service ходят в сеть от имени учетной записи компьютера, что будет работать только в доменной среде.
Так что, если у вас домен, разрешения нужно довать учетной записи компьютера на котором работает SQL Server. Если нет, то запускать службу SQL Server от имени обычной учетной записи и для нее же давать разрешения на сетевые ресурсы.
26 июл 14, 12:33    [16360695]     Ответить | Цитировать Сообщить модератору
 Re: FileTable и создание каталога  [new]
vinvin
Member

Откуда:
Сообщений: 81
Спасибо, invm!

У меня машина не в домене.
Перезапустил сервер под своей учеткой с правами локального администратора.
Результат все тот же.

Права на физический каталог и подкаталоги на группу Администраторы полные.
(Я имею ввиду каталог, который используется в файловой группе FILESTREAM).
28 июл 14, 08:54    [16364389]     Ответить | Цитировать Сообщить модератору
 Re: FileTable и создание каталога  [new]
mike909
Member

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

А не хотите ли посмотреть в сторону TSQL: Creating Sub Directory via SQL INSERT using FileTable ?
28 июл 14, 11:26    [16365061]     Ответить | Цитировать Сообщить модератору
 Re: FileTable и создание каталога  [new]
vinvin
Member

Откуда:
Сообщений: 81
Спасибо БОЛЬШОЕ, получилось!!!
28 июл 14, 16:27    [16367275]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить