Michael Firsov

alguma vez pensou que o seu servidor SQL pode funcionar como um servidor de ficheiros? As chances são que você não – Nem eu até que eu tentei um recurso FileTable introduzido pela primeira vez no SQL Server 2012. O recurso FileTable é o próximo passo na tecnologia FILESTREAM que lhe permite armazenar arquivos e pastas nas tabelas especiais, mas acessá – los usando o protocolo SMB tradicional-os usuários podem criar/ler/modificar/excluir arquivos de uma partilha de arquivo genérico sem sequer estar ciente dos comandos SQL subjacentes. Em outras palavras, os arquivos devem usar tabelas SQL para acesso não transacional.

na minha opinião, um dos maiores benefícios da funcionalidade de arquivos é o armazenamento de atributos de arquivos (tais como Last-WriteTime, Last_AccessTime, etc.) que permite aos administradores auditar operações de acesso a arquivos usando as colunas correspondentes nos arquivos. Neste artigo eu gostaria de mostrar como o servidor SQL 2012-2016 pode ser usado para o armazenamento de arquivos e que mecanismos de auditoria podem ser alavancados para arquivos e pastas que residem nas ações de arquivos SQL. Alguns pré-requisitos devem ser cumpridos antes de tabelas de arquivos podem ser criados em um banco de dados e vamos percorrer todos os passos necessários para se preparar para tabelas de arquivos, em seguida, criar várias tabelas e ver como podemos trabalhar com eles.

Let’s start from enabling the FILESTREAM for the SQL 2012 instance and creating a new FILESTREAM database:

https://msdn.microsoft.com/en-us/library/gg509097%28v=sql.120%29.aspx

I Enable FILESTREAM at the Windows level

  1. Open SQL Configuration manager:
    02
  2. as caixas de controlo estão seleccionadas:
    03

II Enable FILESTREAM at the SQL Instance level:

  1. In SQL Server Management Studio, click New Query to display the Query Editor.
  2. No Editor de Consulta, digite o seguinte código Transact-SQL:
    EXEC sp_configure filestream_access_level, 2
    RECONFIGURAR04

III Fornecer um Grupo de arquivos FILESTREAM no Nível de Banco de dados

Antes de nós pode criar FileTables em um banco de dados, o banco de dados deve ter um grupo de arquivos FILESTREAM. Para mais informações sobre este pré-requisito, por favor veja criar um banco de dados FILESTREAM-habilitado.
Uma vez que vou criar uma nova base de dados, primeiro criarei uma pasta para conter os ficheiros:
01
e depois definirei um FileStream filegroup neste código:

CREATE DATABASE FILESERVER
ON
PRIMARY (NAME = FS,
FILENAME = ‘c:\FILESERVER\FSdat.mdf’),
filegroup FileStreamFS CONTAINS FILESTREAM (NAME = FSgr,
FILENAME = ‘c:\FILESERVER\fs1’)
LOG ON (NAME = FSlog, nome de ficheiro = ‘c:\ FILESERVER \FSlog.atenção! Como diz a Sra.: “Para um FileStream filegroup, o nome do arquivo se refere a um caminho. A localização até a última pasta deve existir, e a última pasta não deve existir.”No código anterior, c:\FILESERVER deve existir, mas a fs1 não deve no momento em que você executa a declaração criar banco de dados.

05

10

:

IV permitir o acesso não transacional ao nível da Base de dados

Uma vez que tenhamos a base de dados criada, o último passo na preparação para os ficheiros é o acesso não transacional enbable ao nível da base de dados.

os ficheiros permitem que as aplicações do Windows obtenham um ficheiro do Windows para filtrar os dados sem necessitar de uma transacção. Para permitir este acesso não-transacional a arquivos armazenados no servidor SQL, você tem que especificar o nível desejado de acesso não-transacional no nível de banco de dados para cada banco de dados que conterá arquivos. If we execute the following code –

SELECT DB_NAME(database_id), non_transacted_ access, non_transacted_ access_desc
FROM sys.database_filestream_options;
IR

…vamos ver que não há bancos de dados não-transacional acesso habilitado:
08

Para permitir que não-transacional de acesso a arquivos no nível do banco de dados (para o SERVIDOR de banco de dados, neste caso) mais uma opção deve ser especificado um diretório para FileTables: ele é o diretório que criei no início do artigo – C:\FILESERVER, mas o nome do diretório deve ser digitado sem a letra de unidade e o símbolo “\”:

ALTER DATABASE FILESERVER
DEFINIR FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N’FILESERVER’ )
IR

09

“No FileTable hierarquia de pasta, este nível de banco de dados de diretório se torna criança do nome de compartilhamento especificado para FILESTREAM no nível da instância, e o pai de guia arquivo arquivos criados no banco de dados”, o que significa FILESERVER será a subpasta de MSSQLSERVER compartilhar como eu havn’t alterado no passo I-2. Para obter mais informações, consulte Trabalhar com Diretórios e Caminhos em FileTables

Executar esse código irá mostrar a não-transacional de acesso tiver sido habilitada com êxito:

SELECCIONE DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
a PARTIR sys.database_filestream_options;
GO

o seguinte código mostra o nome da pasta para a base de dados do servidor de ficheiros:

seleccione DB_NAME ( database_id), directory_name
do sys.database_filestream_ opções;
IR

11

Aqui está o “SQL” compartilhamento de arquivo que os usuários podem agora usar para armazenar seus arquivos e pastas:10-1110-12

Se eu tivesse mudado o padrão MSSQLSERVER compartilhar algo como SHARE1 no passo 2, não teria havido a indicação de qualquer SQL Server envolvidos – da perspectiva do usuário seria normal apenas de compartilhamento de arquivo.

Todos os pré-requisitos para a criação de FileTables são cumpridos agora e podemos continuar a criar FileTables.

trabalhar com tabelas de ficheiros do servidor SQL-parte 2

Deixe uma resposta

O seu endereço de email não será publicado.