Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Sql server 2016 discovery day

999 views

Published on

New Innovations on SQL Server 2016

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Sql server 2016 discovery day

  1. 1. SQL Server 2016 New innovations
  2. 2. Roberto Fonseca rffonseca@outlook.com http://rffonseca.wordpress.com
  3. 3. Há uma oportunidade de tomar melhores decisões com uma infinidade de dados. A explosão de fontes de dados... …leva a uma explosão de dados… …e que leva faz com que os negócios aprendam mais desses dados 2013-2020 CAGR = 41% 25B 4.0B1.3B 2010 2013 2020 Source: Forecast: Internet of Things, Endpoints and Associated Services, Worldwide, 2014. Gartner. Oct 20 2014 Source: IDC “Digital Universe”, Dec. 2012
  4. 4. Faça Mais. Conquiste mais.
  5. 5. Performance Segurança Availability Scalability Operational analytics Insights on operational data; works with in-memory OLTP and disk-based OLTP In-memory OLTP enhancements Greater T-SQL surface area, terabytes of memory supported, and greater number of parallel CPUs Query data store Monitor and optimize query plans Native JSON Expanded support for JSON data Temporal database support Query data as points in time Always encrypted Dados sensíveis sempre criptografados e ainda assim permitindo queries Row-level security Controle de acesso apurado aos dados armazenados Dynamic data masking Ofuscamento de dados para prevenção de acesso não autorizado Other enhancements Operações de auditoria Suporte a TDE para tabelas In- Memory OLTP Habilidade de auditoria com rastreamento de alterações de dados (Temporal Tables) Enhanced AlwaysOn Three synchronous replicas for automatic failover across domains Round-robin load balancing of replicas Automatic failover based on database health DTC for transactional integrity across database instances with AlwaysOn Support for SSIS with AlwaysOn Enhanced database caching Cache data with automatic, multiple TempDB files per instance in multicore environments Performance de Missão Crítica
  6. 6. Always Encrypted SQL Server 2016 SQL Database
  7. 7. Impede a divulgação de dados Criptografia Client-side de dados sensíveis usando chaves que NUNCA são compatilhadas com o DB Queries em dados criptografados Suporte a comparação de igualdade, incluindo joins, group by e distinct. Transparente para Aplicação Mudanças mínimas na aplicação através de melhorias apenas na biblioteca de acesso a dados Permite aos clientes armazenarem dados sensíveis em ambiente fora do seu controle. Dados mantidos protegidos, mesmo para usuários com privilégio avançado (sysadmins) mas que não devem ver esses dados Always Encrypted Security
  8. 8. Randomized Encrypt('123-45-6789') = 0x17cfd50a Repeat: Encrypt('123-45-6789') = 0x9b1fcf32 - Permite visibilidade transparente para aplicação mas NÃO PERMITE busca - Segurança avançada Deterministic Encrypt('123-45-6789') = 0x85a55d3f Repeat: Encrypt('123-45-6789') = 0x85a55d3f - Permite visibilidade transparente para aplicação E busca Exemplo: Em cláusulas WHERE e joins, distinct, group by Dois tipos de criptografia Criptografia randomizada usa métodos que criptografam dados de forma randomizada, onde o mesmo dado de entrada possui valores criptografados diferentes Criptografia Deterministica usa métodos que sempre geram o mesmo valor criptografado para o mesmo dado de entrada Tipos de criptografia - Always Encrypted Security
  9. 9. Como Funciona Protege dados armazenados e em movimento, tanto em ambiente on- premises quanto na nuvem SQL Server ou SQL Database ADO .NET 4.6 Nome João da Silva Nome 0x19ca706fbd9a Result SetResult Set Client Nome CPF Pais 0x19ca706fbd9a 0x7ff654ae6d Brasil dbo.Clientes criptografado "SELECT Name FROM Customers WHERE SSN = @SSN", 0x7ff654ae6d Criptografado "SELECT Nome FROM Clientes WHERE CPF = @CPF", “12345678900" Dados criptografados nunca são expostos em texto plano no SQL Server Limite de Confiança Security
  10. 10. DEMO
  11. 11. Row-level security SQL Server 2016 SQL Database
  12. 12. Acesso controlado apenas as linhas definidas na tabela Previne o acesso não autorizado aos dados quando multiplos usuários compartilham as mesmas tabelas ou em aplicações multitenant (Multiplos clientes) Administrador via SSMS ou SSDT Lógica é garantida dentro da base de dados Protegendo a privacidade dos dados garantindo o acesso correto somente aos registros permitidos SQL Database Usuário 1 Usuário 2 Usuário 3 A necessidade da segurança em nível de linha Security
  13. 13. CREATE SECURITY POLICY mySecurityPolicy ADD FILTER PREDICATE dbo.fn_securitypredicate(wing, startTime, endTime) ON dbo.patients Predicate function Função definida pelo usuário (inline table-valued function iTVF) implementa a lógica de segurança Pode conter lógica complexa e joins com outras tabelas Security predicate Interliga a predicate function à uma tabela, aplicando a lógica de segurança em todas as queries Dois tipos: Predicados de filtro e predicados de bloqueio Security policy Coleção de predicados de segurança para gerenciamento RLS conceitos Security
  14. 14. Two App user (e.g., nurse) selects from Patients table Three Security Policy transparently rewrites query to apply filter predicate Database Policy Manager CREATE FUNCTION dbo.fn_securitypredicate(@wing int) RETURNS TABLE WITH SCHEMABINDING AS return SELECT 1 as [fn_securitypredicate_result] FROM StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId) WHERE e.UserSID = SUSER_SID() AND @wing = d.Wing; CREATE SECURITY POLICY dbo.SecPol ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing) ON Patients WITH (STATE = ON) Filter Predicate: INNER JOIN… Security Policy Application Patients Nurse SELECT * FROM Patients SELECT * FROM Patients SEMIJOIN APPLY dbo.fn_securitypredicate(patients.Wing); SELECT Patients.* FROM Patients, StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId) WHERE e.UserSID = SUSER_SID() AND Patients.wing = d.Wing; RLS em três etapas Security
  15. 15. Usos recomendados de RLS RLS padrão Lógica de negócio customizada para determiner quais linhas cada usuário pode consultar baseado em uma regra, departamento ou nível de segurança Bases Multitenant (Multiplos Inquilinos) Garantir que os clientes (inquilinos) podem acessar apenas os seus registros em uma base compartilhada, tendo a lógica de acesso determinada pelo database e não pela aplicação For example: Aplicações multiempresa Reporting, analytics e data warehousing Diferentes usuários podem acessar o mesmo database através de várias ferramentas, e visualizer apenas os registros permitidos baseado em uma lógica de segurança aplicada ao usuário/regra Security
  16. 16. DEMO
  17. 17. Dynamic data masking SQL Server 2016 SQL Database
  18. 18. Configuração simplificada no portal Azure Política criada em nível de coluna para determinados usuários Data masking aplicado nos dados em tempo real baseado na política de mascaramento Multiplas funções de mascaramento disponíveis (mascaramento total ou parcial do dado) para várias categorias de dados sensíveis (CC, CPF, Email, Salário, etc.) SQL Database SQL Server 2016 Tabela.CartaoCredito 4465-6571-7868-5796 4468-7746-3848-1978 4484-5434-6858-6550 Real-time data masking; partial masking Dynamic data masking Previne o abuso de dados sensíveis ocultando os dados reais dos usuários Security
  19. 19. Conformidade regulatória Proteção de dados sensíveis Agilidade e transparência Dados são mascarados em real- time. Os dados no database continuam intactos. Transparente para a aplicação e respeitando o direito definido para o usuário Limita o acesso a dados sensíveis através de políticas de mascaramento de dados, sem afetar a integridade do database. Benefícios do uso de data masking Security
  20. 20. Como funciona? ALTER TABLE [Employee] ALTER COLUMN [SocialSecurityNumber] ADD MASKED WITH (FUNCTION = ‘SSN()’) ALTER TABLE [Employee] ALTER COLUMN [Email] ADD MASKED WITH (FUNCTION = ‘EMAIL()’) ALTER TABLE [Employee] ALTER COLUMN [Salary] ADD MASKED WITH (FUNCTION = ‘RANDOM(1,20000)’) GRANT UNMASK to admin1 1) Área de segurança define a política de mascaramento para as tabelas e colunas desejadas2) Um usuário da Aplicação consulta a tabela3) A política de data masking é aplicada dependendo do usuário que está consultando os dados SELECT [Name], [SocialSecurityNumber], [Email], [Salary] FROM [Employee] Security
  21. 21. DEMO

×