Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Descreve como habilitar os pré-requisitos para criar e usar FileTables.
Habilitando pré-requisitos para FileTable
Para habilitar os pré-requisitos para criar e usar FileTables, habilite os seguintes itens:
No nível da instância:
Ao nível da base de dados:
Habilitando o FILESTREAM no nível da instância
FileTables estendem os recursos do recurso FILESTREAM do SQL Server. Você precisa habilitar FILESTREAM para acesso de E/S de arquivo no nível do Windows e na instância do SQL Server, antes de poder criar e usar FileTables.
Habilite o FILESTREAM no nível da instância
Para obter informações sobre como habilitar o FILESTREAM, consulte habilitar e configurar o FILESTREAM.
Quando você chama sp_configure para habilitar FILESTREAM no nível da instância, você precisa definir a opção filestream_access_level como 2. Para mais informações, consulte o nível de acesso FILESTREAM (opção de configuração do servidor) .
Permitir FILESTREAM através do firewall
Para obter informações sobre como permitir FILESTREAM através do firewall, consulte Configurar um firewall para acesso FILESTREAM.
Fornecer um grupo de arquivos FILESTREAM no nível do banco de dados
Antes de criar FileTables em um banco de dados, o banco de dados deve ter um grupo de arquivos FILESTREAM. Para obter mais informações sobre esse pré-requisito, consulte Criar um banco de dados FILESTREAM-Enabled.
Habilitar o acesso não transacional no nível do banco de dados
FileTables permitem que os aplicativos do Windows obtenham um identificador de arquivo do Windows para dados FILESTREAM sem exigir uma transação. Para permitir esse acesso não transacional a arquivos armazenados no SQL Server, você precisa especificar o nível desejado de acesso não transacional no nível do banco de dados para cada banco de dados que conterá FileTables.
Verificar se o acesso não transacional está habilitado em bancos de dados
Consulte a vista de catálogo sys.database_filestream_options (Transact-SQL) e verifique as colunas non_transacted_access e non_transacted_access_desc.
SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FROM sys.database_filestream_options;
GO
Habilitar o acesso não transacional no nível do banco de dados
Os níveis disponíveis de acesso não transacional são FULL, READ_ONLY e OFF.
Especifique o nível de acesso não transacional com Transact-SQL
Quando você criar um novo banco de dados, chame a instrução CREATE DATABASE (SQL Server Transact-SQL) com a opção NON_TRANSACTED_ACCESS FILESTREAM.
CREATE DATABASE database_name
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
Ao alterar um banco de dados existente, chame a instrução ALTER DATABASE (Transact-SQL) com a opção NON_TRANSACTED_ACCESS FILESTREAM.
ALTER DATABASE database_name
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
Especificar o nível de acesso não transacional com o SQL Server Management Studio
Você pode especificar o nível de acesso não transacional no campo de acesso não transacionado FILESTREAM da página Opções de da caixa de diálogo Propriedades do Banco de Dados. Para obter mais informações sobre essa caixa de diálogo, consulte Propriedades do Banco de Dados (Página Opções).
Especificar um diretório para FileTables no nível do banco de dados
Ao habilitar o acesso não transacional a arquivos no nível do banco de dados, você pode, opcionalmente, fornecer um nome de diretório ao mesmo tempo com a opção DIRECTORY_NAME. Se você não fornecer um nome de diretório quando habilitar o acesso não transacional, precisará fornecê-lo posteriormente antes de poder criar FileTables no banco de dados.
Na hierarquia de pastas FileTable, esse diretório no nível de banco de dados torna-se o filho do nome de compartilhamento especificado para FILESTREAM no nível da instância e o pai das FileTables criadas no banco de dados. Para obter mais informações, consulte Trabalhar com diretórios e caminhos em FileTables.
Especificar um diretório para FileTables no nível do banco de dados
O nome especificado deve ser exclusivo na instância para diretórios no nível de banco de dados.
Especifique um diretório para FileTables com Transact-SQL
Quando você criar um novo banco de dados, chame a instrução CREATE DATABASE (SQL Server Transact-SQL) com a opção DIRECTORY_NAME FILESTREAM.
CREATE DATABASE database_name
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
GO
Quando você alterar um banco de dados existente, chame a instrução ALTER DATABASE (Transact-SQL) com a opção DIRECTORY_NAME FILESTREAM. Quando você usa essas opções para alterar o nome do diretório, o banco de dados deve ser bloqueado exclusivamente, sem identificadores de arquivo abertos.
ALTER DATABASE database_name
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
GO
Quando você anexar um banco de dados, chame a instrução CREATE DATABASE (SQL Server Transact-SQL) com a opção FOR ATTACH e com a opção DIRECTORY_NAME FILESTREAM.
CREATE DATABASE database_name
FOR ATTACH WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
GO
Quando você restaurar um banco de dados, chame a instrução RESTORE (Transact-SQL) com a opção DIRECTORY_NAME FILESTREAM.
RESTORE DATABASE database_name
WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
GO
Especificar um diretório para FileTables com o SQL Server Management Studio
Você pode especificar um nome de diretório no campo Nome do Diretório FILESTREAM da página Opções da caixa de diálogo Propriedades do Banco de Dados. Para obter mais informações sobre essa caixa de diálogo, consulte Propriedades do Banco de Dados (Página Opções).
Exibir nomes de diretório existentes para a instância
Para exibir a lista de nomes de diretórios existentes para a instância, consulte a exibição de catálogo sys.database_filestream_options (Transact-SQL) e verifique a coluna filestream_database_directory_name.
SELECT DB_NAME ( database_id ), directory_name
FROM sys.database_filestream_options;
GO
Requisitos e restrições para o diretório no nível de banco de dados
Definir o
DIRECTORY_NAMEé opcional quando você chamaCREATE DATABASEouALTER DATABASE. Se você não especificar um valor paraDIRECTORY_NAME, o nome do diretório permanecerá nulo. No entanto, você não pode criar FileTables no banco de dados até especificar um valor paraDIRECTORY_NAMEno nível do banco de dados.O nome do diretório fornecido deve estar em conformidade com os requisitos do sistema de arquivos para um nome de diretório válido.
Quando o banco de dados contém FileTables, você não pode definir o
DIRECTORY_NAMEde volta para um valor nulo.Quando você anexa ou restaura um banco de dados, a operação falhará se o novo banco de dados tiver um valor para
DIRECTORY_NAMEque já existe na instância de destino. Especifique um valor exclusivo paraDIRECTORY_NAMEao chamarCREATE DATABASE FOR ATTACHouRESTORE DATABASE.Quando você atualiza um banco de dados existente, o valor de
DIRECTORY_NAMEé nulo.Quando você habilita ou desabilita o acesso não transacional no nível do banco de dados, a operação não verifica se o nome do diretório foi especificado ou se é exclusivo.
Quando elimina um banco de dados que foi ativado para FileTables, o diretório no nível do banco de dados e todas as estruturas de diretório de todas as FileTables a ele associadas são removidos.