Я добавил Filestream в существующий экземпляр SQL Server 2017.Я уже активировал поддержку Filestream в конфигурации служб SQL Server:
Я также обновил экземпляр, чтобы он имел полный доступ кfilestream:
И я также настроил базу данных так, чтобы она была доступна через имя папки Assistencias
:
И затем я добавил новый FileTable
в базу данных:
CREATE TABLE [dbo].[FicheirosImportacao] AS FILETABLE ON [PRIMARY] FILESTREAM_ON [FILES]
WITH
(FILETABLE_DIRECTORY = N'FicheirosImportacao',
FILETABLE_COLLATE_FILENAME = Latin1_General_CI_AI)
Я также добавил пару входов в SQLЭкземпляр сервера, который сопоставлен с существующими учетными записями AD, и я пошел дальше и дал разрешения на выбор, вставку, обновление и удаление этим пользователям:
grant insert, update, select on dbo.ficheirosimportacao to [domain\username]
Даже если пользователи могут выполнять несколько операций (добавить новыефайлы, измените их содержимое или удалите их) через сетевой ресурс (\machine\instance\db\file table name
), есть одна операция, которую они не могут выполнить: изменить имя существующего файла.
Когда они пытаются это сделать, они всегда получат ошибку, которая говорит о том, что файл слишком велик для целевой файловой системы.На следующем рисунке показано, что происходит, когда я пытаюсь переименовать файл, который пуст и изначально был назван New Text Document.txt
:
Я установилФункция файлового потока на разных серверах SQL, и в этих случаях все работает нормально, и пользователи могут изменять имена файлов.
Что мне здесь не хватает?