Microsoft SQL Server 2016 SP1 – Atualização Cumulativa 9


A Microsoft disponibilizou para download nesta semana a Atualização Cumulativa 6 para SQL Server 2016 SP1.

Atualização Cumulativa 6 para SQL Server 2016 SP1

O artigo KB4037354 com informações sobre o que a atualização traz de novo ainda não está disponível, publicado aqui pela Microsoft.

A tabela a seguir lista o status de artigos individuais da Base de conhecimento Microsoft. 

Número de bug do VSTS Número de artigo do KB Descrição Corrigir a área
10918636 4049027 CORREÇÃO: Erro de “AdomdConnectionException” quando a fonte de dados do SSRS 2016 usa msmdpump O Reporting Services
10868757 4040512 CORREÇÃO: Erro ao exportar um relatório do Reporting Services para PDF no SQL Server 2017 O Reporting Services
10868767 4039510 CORREÇÃO: Violação de acesso ocorre quando você usar sp_xml_preparedocument para abrir documentos XML no SQL Server 2014 ou 2017 XML
10067707 4019840 CORREÇÃO: Consultas em tabelas externas PolyBase retornam linhas duplicadas no SQL Server de 2016 e 2017 Mecanismo do SQL
10362525 4035062 CORREÇÃO: Uso de memória com muitos bancos de dados maiores no SQL Server 2016 que versões anteriores Mecanismo do SQL
11078704 4039592 CORREÇÃO: Não pode alterar a senha para um SQL Server 2014 ou 2016 conta de serviço quando é habilitada para proteção adicional da LSA Ferramentas de gerenciamento
11078711 4042232 CORREÇÃO: Violação de acesso quando você cancelar uma consulta pendente se os desaparecidos indexa o recurso está habilitada no SQL Server de 2014 e 2016 Desempenho de SQL
11078718 4043947 CORREÇÃO: Funcionalidade de favoritos não funciona completamente quando você abre um relatório em formato MHTML através do Outlook no SSRS 2014 e 2016 O Reporting Services
10868753 4033789 FIX: Um vazamento de memória pode ocorrer quando você executar operações de atualização de processo no SSAS Serviços de análise
10868722 4038882 FIX: SQL Server Backup gerenciado não exclui os backups antigos que estão para além do período de retenção no SQL Server Mecanismo do SQL
10868738 4039509 CORREÇÃO: SSAS falha quando você processa um cubo no SQL Server ou um banco de dados do SSAS Serviços de análise
10868725 4039511 CORREÇÃO: Conseguiu falhar Backup intermitentemente por causa de erro SQLVDI no SQL Server Mecanismo do SQL
10868770 4039735 CORREÇÃO: “Non-produzindo Scheduler” condição ocorre para consulta com muitas expressões em SQL Server 2014 e 2016 Desempenho de SQL
10868732 4040376 CORREÇÃO: Backup gerenciado no Microsoft Azure para depois de backup de banco de dados grande no SQL Server Mecanismo do SQL
11052450 4046056 CORREÇÃO: Afirmação ocorre sobre como acessar a tabela de memória otimizada através de Marte Mecanismo do SQL
10864945 3010148 CORREÇÃO: Papel Non-admin não pode receber correto ChildCount estimativas para membros da folha dimensão pai/filho no SSAS Serviços de análise
10965956 4034789 CORREÇÃO: Um erro de exceção inesperada ocorre quando uma medida de XTIR processa muitos registros no SSAS 2016 ou 2017 Serviços de análise
10870250 4040934 CORREÇÃO: Pacotes de serviço do SQL Server Integration pendurar aleatoriamente se log personalizado está habilitado Serviços de integração
11029968 4051356 CORREÇÃO: Restauração de banco de dados na memória falha com erros no SQL server 2016 Na memória OLTP
11031436 4052133 CORREÇÃO: Violação de acesso ocorre quando SQL Server 2016 tenta iniciar o Gerenciador de loja de consulta durante a inicialização Mecanismo do SQL
10980994 4052132 FIX: Um problema de Agendador não produzindo ocorre quando você usar o recurso de armazenamento de consulta do SQL Server no SQL Server Mecanismo do SQL
11124144 4052127 Hotfix: Mecanismo de alerta lê todo Log de eventos do aplicativo e envia aler Ferramentas de gerenciamento
10855950 4052125 CORREÇÃO: Log de auditoria para eventos de ROLLBACK TRANSACTION não está disponível no SQL Server 2016 Segurança do SQL
11060168 4052123 CORREÇÃO: Deslizamento de validade para o cookie de autenticação não está funcionando e falha redirecionar para a página de logon no SSRS 2016 O Reporting Services
11031058 4052121 CORREÇÃO: Violação de acesso para consultas de DMV correr contra um grupo de disponibilidade distribuídas no SQL Server Alta disponibilidade
10971673 4052119 CORREÇÃO: Transações distribuídas em um banco de dados AG falhar depois de reiniciar no SQL Server 2016 Mecanismo do SQL
10881290 4052131 CORREÇÃO: Sys.dm_os_windows_info Detran retorna valores errados para 10 de Windows e Windows server 2016 Mecanismo do SQL
10864854 4052572 CORREÇÃO: 2016 SSAS trava intermitentemente quando você renomear o banco de dados multidimensional usando script Serviços de análise
11127649 4052625 CORREÇÃO: Consultas de recuperação de dados usando a busca de índice não-agrupado demoram muito no SQL Server Mecanismo do SQL
10820931 4048942 CORREÇÃO: “Parado IOCP Listener” e “não produzidas IOCP ouvinte” dumps de memória gerado pelo SQL Server 2016 reiniciar Mecanismo do SQL
10921921 4048943 CORREÇÃO: Violação de acesso na réplica primária da AlwaysOn AG em SQL Server 2016 Alta disponibilidade
11018232 4046858 CORREÇÃO: Consulta que usa o plano de execução de consulta paralela com operação “merge join” lenta na atualização cumulativa 3, 4 ou 5 para SQL Server 2016 Service Pack 1 Desempenho de SQL
10935673 4052633 CORREÇÃO: Consulta SELECT que usa hash de modo lote operador agregado que conta várias colunas anuláveis retorna incorreto resulta em SQL Server Desempenho de SQL
10330560 4053550 CORREÇÃO: Processamento mensagem XML usando o Service Broker resulta em sessão pendurada no SQL Server 2016 Mecanismo do SQL
10678621 4037454 CORREÇÃO: Política de gerenciamento de diretiva não está funcionando depois de instalar o CU2 para SQL Server SP1 de 2016 Ferramentas de gerenciamento
10972567 4043624 CORREÇÃO: Limpeza manual de controle de alterações falhar com o erro de não-existência de tabela no SQL Server Mecanismo do SQL
10868776 3208545 FIX: SQL Server 2016 ou 2017 Analysis Services pode falhar em uma situação específica Serviços de análise
10868735 4022483 CORREÇÃO: Erro quando você exporta uma base de conhecimento DQS que contém domínios no cliente DQS no SQL Server Serviços de qualidade de dados (DQS)
10868748 4040401 CORREÇÃO: Violação de acesso para consulta a tipos de dados espaciais através de servidor vinculado no SQL Server Mecanismo do SQL
10930335 4044064 CORREÇÃO: Erro de “Solicitação expirou” quando você alterar as opções de segurança para um grupo de segurança MDS no SQL Server 2016 Serviços de qualidade de dados (DQS)
10934352 4045795 CORREÇÃO: Thread pool exaustão e contenção CMEMTHREAD na AAG com dados semeadura em SQL Server 2016 Mecanismo do SQL

A Atualização Cumulativa 6 para SQL Server 2016 SP1 está disponível para download aqui.

Fontes e Direitos Autorais: Microsoft Support – 21/11/2017 –https://support.microsoft.com/en-us/help/4037354/cumulative-update-6-for-sql-server-2016-sp1

Criptografando dados em tempo real com Função HashBytes e Algortimos de Hashing.


Pessoal, boa tarde.

Tudo bem? Recentemente em minhas aulas e consultorias um dos assuntos que mais tenho recebido perguntas e questionamentos, esta relacionado as ferramentas, técnicas e recursos de segurança e criptografia de dados existente no SQL Server.

Pois bem, com base neste cenário, comecei a procurar mais informações e como de costume encontrei na minha biblioteca de Scripts e Materias de Apoio, um pequeno código que pode ser bastante útil e de fácil compreensão.

Mas antes de destacar este código, gostaria de apresentar uma Visão geral das exigências de regulamentações relacionadas a Segurança e Criptografia com base em Leis e Normais Nacionais e Internacionais. Conforme destaco a seguir:

Como outras empresas, a Microsoft vem reavaliando as estruturas de segurança atuais para garantir que as estruturas de segurança cumpram as leis federais, estaduais e internacionais recentes que definem as obrigações de conformidade com as regulamentações relativas às informações pessoais. Nos Estados Unidos, essas leis incluem as seguintes leis federais e estaduais:

  • Lei Sarbanes-Oxley de 2002;
  • GLBA (Gramm-Leach-Bliley Act) de 1999;
  • HIPAA (Health Insurance Portability and Accountability Act, Lei de Portabilidade e Responsabilidade dos Seguros Saúde) de 1996;
  • Lei FERPA (Family Educational Rights and Privacy Act, Lei de direitos educacionais e de privacidade da família);
  • Título FDA 21 Parte 11 do CFR;
  • Projeto de Lei do Senado da Califórnia nº 1.386; e
  • Projeto de Lei do Senado de Washington nº 6.043.

Além disso, alguns regulamentos internacionais definem as obrigações de conformidade reguladora para empresas que armazenam informações de identificação pessoal. Esses regulamentos englobam:

  • PIPEDA canadense (Personal Information Protection and Electronic Documents Act, Lei de Proteção a Informações Pessoais e Documentos Eletrônicos);
  • European Union Data Protection Directive (Diretiva de proteção a dados da União Européia); e
  • Acordo de Capital da Basiléia, também conhecido como Basiléia II.

As organizações que armazenam informações pessoais do consumidor devem considerar cuidadosamente as implicações relativas a essas novas exigências regulatórias. Essas exigências afetam todas as seguintes operações de bancos de dados:

  • Autenticação de banco de dados, inclusive diretivas de senha e protocolos de autenticação;
  • Controles de autorização e acesso a banco de dados;
  • Proteção a dados confidenciais armazenados em um banco de dados;
  • Proteção a dados confidenciais transferidos para um banco de dados ou de um banco de dados; e
  • Auditorias de transações de bancos de dados para ajudar a garantir confidencialidade e integridade de dados.

As empresas devem cumprir as obrigações de conformidade com regulamentações relativas às informações de identificação pessoal. Para fornecer proteção a dados eficaz e econômica, os departamentos de TI das empresas devem reexaminar como suas organizações armazenam e gerenciam dados confidenciais.

Tendo como base este conjunto de Leis, Normas e ISOs, o Centro de Pesquisa e Estudos da Microsoft decidiu introduzir desde a versão 2005 do SQL Server, as chamadas Funções e Algoritmos de HashBytes.

Para ajudar a entender como estas funções e algoritmos, sua finalidade e forma de uso, vou procurar responder as questões apresentadas abaixo:

1 – Mas o que é Hash? E qual sua função?

Um hash (ou escrutínio) é uma sequência de bits geradas por um algoritmo de dispersão, em geral representada em base hexadecimal, que permite a visualização em letras e números (0 a 9 e A a F), representando 1/2 byte cada. O conceito teórico diz que “hash é a transformação de uma grande quantidade de informações em uma pequena quantidade de informações”.

Essa sequência busca identificar um arquivo ou informação unicamente. Por exemplo, uma mensagem de correio eletrônico, uma senha, uma chave criptográfica ou mesmo um arquivo. É um método para transformar dados de tal forma que o resultado seja (quase) exclusivo. Além disso, funções usadas em criptografia garantem que não é possível a partir de um valor de hash retornar à informação original.

Como a sequência do hash é limitada, muitas vezes não passando de 512 bits, existem colisões (sequências iguais para dados diferentes). Quanto maior for a dificuldade de se criar colisões intencionais, melhor é o algoritmo.

Uma função de hash recebe um valor de um determinado tipo e retorna um código para ele. Enquanto o ideal seria gerar identificadores únicos para os valores de entrada, isso normalmente não é possível: na maioria dos casos, o contra-domínio de
nossa função é muito menor do que o seu domínio, ou seja, x (o tipo de entrada) pode assumir uma gama muito maior de valores do que HASH x (o resultado da função de hash).

2 -Quais são os algoritmos mais utilizandos em conjunto com a função Hash?

Os algoritmos de criptografia definem transformações de dados que não podem ser facilmente revertidas por usuários não autorizados. O SQL Server permite que administradores e desenvolvedores escolham entre diversos algoritmos, incluindo
DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, RC4 de 128 bits, DESX, AES de 128  bits, AES de 192 bits e AES de 256 bits.

Os mais usados algoritmos de hash são os de 16 bytes MD4 e MD5 ou o SHA-1, de 20 bytes. Características de alguns algoritmos:

  1. MD4: Desenvolvido em 1990/91 por Ron Rivest, vários ataques foram detectados, o que fez com que
    o algoritmo fosse considerado frágil;
  2. MD5: O MD5 (Message-Digest algorithm 5) é um algoritmo de hash de 128 bits unidirecional desenvolvido pela RSA Data Security, Inc., descrito na RFC 1321, e muito utilizado por softwares com protocolo par-a-par (P2P, ou Peer-to-Peer, em inglês), verificação de integridade e logins. Existem alguns métodos de ataque divulgados para o MD5;
  3. SHA-1 (Secure Hash Algorithm): Desenvolvido pelo NIST e NSA. Já foram exploradas falhas no SHA; e
  4. WHIRLPOOL: função criptográfica de hash desenvolvida por Paulo S. L. M. Barreto e por Vincent Rijmen (co-autor do AES). A função foi recomendada pelo projeto NESSIE (Europeu). Foi também adotado pelo ISO e IEC como parte do padrão internacional ISO 10118-3.

O processo é unidirecional e impossibilita descobrir o conteúdo original a partir do hash. O valor de conferência (“check-sum”) muda se um único bit for alterado, acrescentado ou retirado da mensagem.

3 – Posso utilizar qualquer algoritmo em qualquer situação de criptografia?

Nenhum algoritmo é ideal para todas as situações, porém, os seguintes princípios gerais se aplicam:

  • A criptografia segura geralmente consome mais recursos da CPU que criptografia menos segura;
  • As chaves extensas geralmente produzem uma criptografia mais segura que as chaves mais curtas;
  • A criptografia assimétrica é mais segura que a criptografia simétrica, que usa o mesmo comprimento de chave mas é relativamente mais lenta;
  • Codificações em bloco com chaves extensas são mais seguras que codificações em fluxo;
  • Senhas longas e complexas são mais seguras que senhas curtas;
  • Se você estiver criptografando muitos dados, deve criptografá-los usando uma chave simétrica e criptografar a chave simétrica com uma chave assimétrica; e
  • Dados criptografados não podem ser compactados, mas dados compactados podem ser criptografados. Se você usar compactação, deverá compactar os dados antes de criptografá-los.

Bem, com estas respostas, acredito que ficou mais fácil entender o nível de importância e complexidade que envolve os processos, técnicas e ferramentas de criptografia. Desta forma, vou apresentar o chamado Modelo de Criptografia Hashing, conforme apresenta a Figura 1.

Figura 1 – Modelo de Criptografia Hashing.

Basicamente o Modelo de Criptografia Hashing, pode ser considerado a forma mais fácil e simples de se evitar que informações contidas em seu banco de dados sejam lidas por pessoas não autorizadas, aplicando os conceitos de criptografia. Ao usar Hash, as informações que vão para o banco são criptografadas de tal maneira que é impossível descriptografá-lo.

A criptografia por hash usa basicamente 2 parâmetros:

1) O algorítimo de criptografia; e
2) Os dados a serem criptografados.
Com o Modelo de Criptografia Hashing apresentado, agora é hora de colocar a mão na massa, ou seja, vamos realizar a nossa criptografia com base no exemplo a seguir:

–Declarando um variável @HashThis–
DECLARE @MeuValorCriptografado NVarChar(max);

SELECT @MeuValorCriptografado = CONVERT(nvarchar,’Pedro’);

/* Utilizando a função HashBytes para converter a sentença com uso dos Algoritmos Hash + SHA1, SHA, MD5, MD4, MD2 */

SELECT HashBytes(‘SHA1’, @MeuValorCriptografado) Resultado
Union
SELECT HashBytes(‘SHA’, @MeuValorCriptografado)
Union
Select HashBytes(‘MD5’, @MeuValorCriptografado)
Union
Select HashBytes(‘MD4’, @MeuValorCriptografado)
Union
Select HashBytes(‘MD2’, @MeuValorCriptografado)
Go

Neste código de exemplo, utilizei todos os principais Algoritmos de Hash disponíveis para a Função HashBytes em conjunto com o Modelo de Criptografia Hashing.

Desta forma, estou encerramenta mais esta dica, espero que todos possam ter gostado e que as informações apresentadas aqui, possam ser úteis.

Agradeço mais uma vez a sua visita, nos encontramos em breve.

Até mais.