Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
SSIS Integration Runtime em Azure Data Factory
A segurança no SQL Server Integration Services consiste em várias camadas que fornecem um ambiente de segurança rico e flexível. Essas camadas de segurança incluem o uso de assinaturas digitais, propriedades de pacote, funções de banco de dados do SQL Server e permissões do sistema operacional. A maioria desses recursos de segurança se enquadra nas categorias de identidade e controle de acesso.
Mitigação de ameaças e vulnerabilidades
Embora o Integration Services inclua uma variedade de mecanismos de segurança, os pacotes e os arquivos criados ou usados pelos pacotes podem ser explorados para fins mal-intencionados.
A tabela a seguir descreve esses riscos e as etapas proativas que você pode tomar para diminuir os riscos.
| Ameaça ou vulnerabilidade | Definição | Atenuação |
|---|---|---|
| Origem do pacote | A origem de um pacote é o indivíduo ou organização que criou o pacote. Executar um pacote de uma fonte desconhecida ou não confiável pode ser arriscado. | Identifique a origem de um pacote usando uma assinatura digital e execute pacotes que vêm apenas de fontes conhecidas e confiáveis. Para obter mais informações, consulte Identificar a origem dos pacotes com assinaturas digitais. |
| Conteúdos da embalagem | O conteúdo do pacote inclui os elementos no pacote e suas propriedades. As propriedades podem conter dados confidenciais, como uma senha ou uma cadeia de conexão. Elementos de pacote, como uma instrução SQL, podem revelar a estrutura do seu banco de dados. | Controle o acesso a um pacote e ao conteúdo executando as seguintes etapas: 1) Para controlar o acesso ao pacote em si, aplique os recursos de segurança do SQL Server aos pacotes que são salvos no banco de dados msdb em uma instância do SQL Server. Para pacotes salvos no sistema de arquivos, aplique recursos de segurança do sistema de arquivos, como listas de controles de acesso (ACLs). 2) Para controlar o acesso ao conteúdo do pacote, defina o nível de proteção do pacote. Para obter mais informações, consulte Visão geral da segurança (Integration Services) e Controle de acesso para dados confidenciais em pacotes. |
| Saída do pacote | Quando você configura um pacote para usar configurações, pontos de verificação e registro, o pacote armazena essas informações fora do pacote. As informações armazenadas fora do pacote podem conter dados confidenciais. | Para proteger as configurações e os logs que o pacote salva nas tabelas de banco de dados do SQL Server, use os recursos de segurança do SQL Server. Para controlar o acesso aos arquivos, use as listas de controle de acesso (ACLs) disponíveis no sistema de arquivos. Para obter mais informações, consulte Acesso a arquivos usados por pacotes |
Características de Identidade
Ao implementar recursos de identidade em seus pacotes, você pode atingir o seguinte objetivo:
Certifique-se de abrir e executar pacotes apenas de fontes confiáveis.
Para garantir que você só abra e execute pacotes de fontes confiáveis, primeiro é necessário identificar a origem dos pacotes. Você pode identificar a origem assinando pacotes com certificados. Em seguida, ao abrir ou executar os pacotes, você pode fazer com que o Integration Services verifique a presença e a validade das assinaturas digitais. Para obter mais informações, consulte Identificar a origem dos pacotes com assinaturas digitais.
Recursos de controle de acesso
Ao implementar recursos de identidade em seus pacotes, você pode atingir o seguinte objetivo:
Certifique-se de que apenas usuários autorizados abram e executem pacotes.
Para garantir que apenas usuários autorizados abram e executem pacotes, você precisa controlar o acesso às seguintes informações:
Controle o acesso ao conteúdo dos pacotes, especialmente dados sensíveis.
Controle o acesso a pacotes e configurações de pacotes armazenados no SQL Server.
Controle o acesso a pacotes e arquivos relacionados, como configurações, logs e arquivos de ponto de verificação armazenados no sistema de arquivos.
Controle o acesso ao serviço Integration Services e às informações sobre pacotes que o serviço exibe no SQL Server Management Studio.
Controlando o acesso ao conteúdo dos pacotes
Para ajudar a restringir o acesso ao conteúdo de um pacote, você pode criptografar pacotes definindo a propriedade ProtectionLevel do pacote. Você pode definir essa propriedade para o nível de proteção que seu pacote exige. Por exemplo, em um ambiente de desenvolvimento de equipe, você pode criptografar um pacote usando uma senha que é conhecida apenas pelos membros da equipe que trabalham no pacote.
Quando você define a propriedade ProtectionLevel de um pacote, o Integration Services deteta automaticamente propriedades confidenciais e manipula essas propriedades de acordo com o nível de proteção do pacote especificado. Por exemplo, você define a propriedade ProtectionLevel de um pacote para um nível que criptografa informações confidenciais com uma senha. Para este pacote, o Integration Services criptografa automaticamente os valores de todas as propriedades confidenciais e não exibirá os dados correspondentes sem que a senha correta seja fornecida.
Normalmente, o Integration Services identifica propriedades como confidenciais se essas propriedades contiverem informações, como uma senha ou uma cadeia de conexão, ou se essas propriedades corresponderem a variáveis ou nós XML gerados por tarefas. Se o Integration Services considera uma propriedade sensível depende se o desenvolvedor do componente Integration Services, como um gerenciador de conexões ou tarefa, designou a propriedade como confidencial. Os usuários não podem adicionar propriedades nem remover propriedades da lista de propriedades consideradas confidenciais. Se você escrever tarefas personalizadas, gerenciadores de conexões ou componentes de fluxo de dados, poderá especificar quais propriedades o Integration Services deve tratar como confidenciais.
Para obter mais informações, consulte Controle de Acesso para Dados Confidenciais em Pacotes.
Controlando o acesso a pacotes
Você pode salvar pacotes do Integration Services no banco de dados msdb em uma instância do SQL Server ou no sistema de arquivos como arquivos XML com a extensão de nome de arquivo .dtsx. Para obter mais informações, consulte Salvar pacotes.
Salvando pacotes no banco de dados msdb
Salvar os pacotes no banco de dados msdb ajuda a fornecer segurança nos níveis de servidor, banco de dados e tabela. No banco de dados msdb, os pacotes do Integration Services são armazenados na tabela sysssispackages. Como os pacotes são salvos nas tabelas sysssispackages e sysdtspackages no banco de dados msdb, o backup dos pacotes é feito automaticamente quando você faz backup do banco de dados msdb.
Os pacotes do SQL Server armazenados no banco de dados msdb também podem ser protegidos aplicando as funções no nível de banco de dados do Integration Services. O Integration Services inclui três funções fixas no nível de banco de dados db_ssisadmin, db_ssisltduser e db_ssisoperator para controlar o acesso a pacotes. Uma função de leitor e uma função de gravador podem ser associadas a cada pacote. Você também pode definir funções personalizadas no nível de banco de dados para usar em pacotes do Integration Services. As funções podem ser implementadas somente em pacotes salvos no banco de dados msdb em uma instância do SQL Server. Para obter mais informações, consulte Funções do Integration Services (Serviço SSIS).
Salvando pacotes no sistema de arquivos
Se você armazenar pacotes no sistema de arquivos em vez de no banco de dados msdb, certifique-se de proteger os arquivos de pacote e as pastas que contêm arquivos de pacote.
Controlando o acesso a arquivos usados por pacotes
Os pacotes que foram configurados para usar configurações, pontos de verificação e registro em log geram informações que são armazenadas fora do pacote. Estas informações podem ser sensíveis e devem ser protegidas. Os arquivos de ponto de verificação podem ser salvos somente no sistema de arquivos, mas as configurações e os logs podem ser salvos no sistema de arquivos ou em tabelas em um banco de dados do SQL Server. As configurações e os logs salvos no SQL Server estão sujeitos à segurança do SQL Server, mas as informações gravadas no sistema de arquivos exigem segurança adicional.
Para obter mais informações, consulte Acesso a arquivos usados por pacotes.
Armazenando configurações de pacotes com segurança
As configurações de pacote podem ser salvas em uma tabela em um banco de dados do SQL Server ou no sistema de arquivos.
As configurações podem ser salvas em qualquer banco de dados do SQL Server, não apenas no banco de dados msdb. Assim, você pode especificar qual banco de dados serve como repositório de configurações de pacotes. Você também pode especificar o nome da tabela que conterá as configurações, e o Integration Services cria automaticamente a tabela com a estrutura correta. Salvar as configurações em uma tabela torna possível fornecer segurança nos níveis de servidor, banco de dados e tabela. Além disso, o backup das configurações salvas no SQL Server é feito automaticamente quando você faz backup do banco de dados.
Se você armazenar configurações no sistema de arquivos em vez de no SQL Server, certifique-se de proteger as pastas que contêm os arquivos de configuração do pacote.
Para obter mais informações sobre configurações, consulte Configurações de pacote.
Controlando o acesso ao serviço Integration Services
O SQL Server Management Studio usa o serviço SQL Server para listar pacotes armazenados. Para impedir que usuários não autorizados exibam informações sobre pacotes armazenados em computadores locais e remotos e, assim, aprendam informações privadas, restrinja o acesso a computadores que executam o serviço SQL Server.
Para obter mais informações, consulte Acesso ao serviço Integration Services.
Acesso aos arquivos usados pelos pacotes
O nível de proteção do pacote não protege os arquivos armazenados fora do pacote. Esses arquivos incluem o seguinte:
Arquivos de configuração
Arquivos de ponto de verificação
Ficheiros de registo
Esses arquivos devem ser protegidos separadamente, especialmente se incluírem informações confidenciais.
Arquivos de configuração
Se você tiver informações confidenciais em uma configuração, como informações de logon e senha, considere salvar a configuração no SQL Server ou usar uma lista de controle de acesso (ACL) para restringir o acesso ao local ou pasta onde você armazena os arquivos e permitir o acesso apenas a determinadas contas. Normalmente, concede-se acesso às contas que têm permissão para executar pacotes e às contas que gerem e resolvem problemas de pacotes, o que pode incluir a revisão do conteúdo dos ficheiros de configuração, ponto de controlo e log. O SQL Server fornece o armazenamento mais seguro porque oferece proteção nos níveis de servidor e banco de dados. Para salvar configurações no SQL Server, use o tipo de configuração do SQL Server. Para salvar no sistema de arquivos, use o tipo de configuração XML.
Para obter mais informações, consulte Configurações de pacote,Criar configurações de pacote e Considerações de segurança para uma instalação do SQL Server.
Arquivos de ponto de verificação
Da mesma forma, se o arquivo de ponto de verificação que o pacote usa incluir informações confidenciais, você deve usar uma lista de controle de acesso (ACL) para proteger o local ou a pasta onde você armazena o arquivo. Os arquivos de ponto de verificação salvam informações de estado atual sobre o progresso do pacote, bem como os valores atuais das variáveis. Por exemplo, o pacote pode incluir uma variável personalizada que contém um número de telefone. Para obter mais informações, consulte Reiniciar Pacotes Usando Pontos de Verificação.
Ficheiros de registo
As entradas de log gravadas no sistema de arquivos também devem ser protegidas usando uma lista de controle de acesso (ACL). As entradas de log também podem ser armazenadas em tabelas do SQL Server e protegidas pela segurança do SQL Server. As entradas de log podem incluir informações confidenciais, por exemplo, se o pacote contiver uma tarefa Executar SQL que constrói uma instrução SQL que se refere a um número de telefone, a entrada de log para a instrução SQL inclui o número de telefone. A instrução SQL também pode revelar informações privadas sobre nomes de tabelas e colunas em bancos de dados. Para obter mais informações, consulte o Log de Serviços de Integração (SSIS) .
Acesso ao Serviço Serviços de Integração
Os níveis de proteção do pacote podem limitar quem tem permissão para editar e executar um pacote. É necessária proteção adicional para limitar quem pode exibir a lista de pacotes atualmente em execução em um servidor e quem pode parar de executar pacotes atualmente no SQL Server Management Studio.
O SQL Server Management Studio usa o serviço SQL Server para listar pacotes em execução. Os membros do grupo Administradores do Windows podem exibir e interromper todos os pacotes em execução no momento. Os usuários que não são membros do grupo Administradores podem exibir e interromper apenas os pacotes iniciados.
É importante restringir o acesso a computadores que executam um serviço do SQL Server, especialmente um serviço do SQL Server que pode enumerar pastas remotas. Qualquer usuário autenticado pode solicitar a enumeração de pacotes. Mesmo que o serviço não encontre o serviço, o serviço enumera pastas. Esses nomes de pasta podem ser úteis para um usuário mal-intencionado. Se um administrador tiver configurado o serviço para enumerar pastas em uma máquina remota, os usuários também poderão ver nomes de pastas que normalmente não seriam capazes de ver.
Tarefas relacionadas
A lista a seguir contém links para tópicos que mostram como executar uma determinada tarefa referente à segurança.