ÍNDICE GERAL AGRADECIMENTOS ............................................................................................. XV COMO UTILIZAR ESTE LIVRO ............................................................................. XVII 0. INTRODUÇÃO .................................................................................................. 1 1. INTRODUÇÃO AO SQL SERVER 2014 .................................................................... 3 1.1. SQL Server ........................................................................................................................................... 3 1.2. Plataforma do SQL Server 2014 ......................................................................................................... 3 1.3. Potencialidades do SQL Server 2014 ................................................................................................ 4 1.3.1. Policy‐Based Management .................................................................................................... 10 1.3.2. Auditoria e controlo de alterações ....................................................................................... 11 1.3.3. Resource Governor ................................................................................................................. 11 1.3.4. Segurança ................................................................................................................................ 11 1.3.5. Tipos de dados ........................................................................................................................ 12 1.3.6. StreamInsight .......................................................................................................................... 13 1.3.7. PowerPivot .............................................................................................................................. 13 1.3.8. Compressão unicode ............................................................................................................... 14 1.3.9. AlwaysOn/HADR (High Availability Disaster Recovery) ..................................................... 14 1.3.10. Column‐Store Index ................................................................................................................ 15 1.3.11. Distributed Replay ............................................................................................................... 15 1.3.12. Reporting Services ................................................................................................................ 15 1.3.13. Data Quality Services ........................................................................................................... 15 1.3.14. Cloud on your terms ................................................................................................................ 15 1.4. Novidades do SQL Server 2014 ....................................................................................................... 16 1.4.1. Backup Encryption ................................................................................................................. 16 1.4.2. Projeto Hekaton: In‐Memory OLTP Engine .......................................................................... 16 1.4.3. Melhoramentos no AlwaysOn .............................................................................................. 17 1.4.4. Integração com Windows Azure .......................................................................................... 17 1.4.5. Memory Optimization Advisor ............................................................................................ 17 1.5. Edições do SQL Server 2014 ............................................................................................................ 17 1.5.1. SQL Server 2014 Enterprise ................................................................................................... 18 1.5.2. SQL Server 2014 Business Intelligence ................................................................................ 18 1.5.3. SQL Server 2014 Standard ..................................................................................................... 19 1.5.4. SQL Server 2014 Express ....................................................................................................... 19 1.5.5. SQL Server 2014 Developer ................................................................................................... 20 1.5.6. SQL Azure ............................................................................................................................... 20 1.5.6.1. SQL Azure Web ......................................................................................................... 21 1.5.6.2. SQL Business .............................................................................................................. 21 1.5.7. SQL Server 2014 64 bits .......................................................................................................... 21 1.5.8. Comparação entre as várias edições do SQL Server 2014 ................................................. 22 1.5.9. SQL Server Compact Edition ................................................................................................ 25 © FCA – Editora de Informática
VI
SQL SERVER 2014 – CURSO COMPLETO
1.6. Licenciamento do SQL Server 2014 ................................................................................................ 28 1.6.1. Licenciamento por núcleo ..................................................................................................... 29 1.6.2. Servidor mais licença de acesso dispositivo cliente (CAL) ............................................... 30 1.6.3. Licenciamento para virtualização......................................................................................... 31 1.6.3.1. Licenciamento para máquinas virtuais individuais ............................................. 31 1.6.3.2. Licenciamento para ambientes densamente virtualizados .................................. 33 1.6.4. Licenciamento em ambientes de alta disponibilidade ....................................................... 33 1.7. Papel do administrador de bases de dados ................................................................................... 34 1.7.1. O que é o DBA ........................................................................................................................ 35 1.7.2. Administração de bases de dados ........................................................................................ 36 1.7.3. Tarefas do DBA ....................................................................................................................... 37 1.7.3.1. Instalação e configuração ......................................................................................... 37 1.7.3.2. Segurança ................................................................................................................... 38 1.7.3.3. Operações do dia a dia ............................................................................................. 39 1.7.3.4. Monitorização do sistema ........................................................................................ 39 1.7.3.5. Rotinas de manutenção ............................................................................................ 40 2. DESENHO E PLANEAMENTO ................................................................................ 41 2.1. Do hardware ........................................................................................................................................ 41 2.1.1. Disco duro ............................................................................................................................... 42 2.1.1.1. Características de um disco duro ............................................................................ 43 2.1.2. Sistemas de discos tolerantes a falhas .................................................................................. 45 2.1.2.1. Mirroring de discos .................................................................................................... 45 2.1.2.2. Duplexing de discos ................................................................................................... 46 2.1.2.3. Striping de discos ....................................................................................................... 46 2.1.2.4. Redundant Array of Independent Disks (RAID) ........................................................ 47 2.1.2.5. Performance dos sistemas de RAID ........................................................................ 54 2.1.2.6. Network Attached Storage (NAS) .............................................................................. 57 2.1.2.7. Storage Area Network (SAN) ..................................................................................... 58 2.1.2.8. Princípios básicos do desenho do subsistema de armazenamento .................... 60 2.1.2.9. Boas práticas ............................................................................................................. 60 2.1.3. Plataforma de 32 bits ou de 64 bits? ..................................................................................... 62 2.1.3.1. X86 .............................................................................................................................. 62 2.1.3.2. X64 .............................................................................................................................. 63 2.1.3.3. Itanium ...................................................................................................................... 63 2.2. Do software ......................................................................................................................................... 64 2.2.1. Versões do Windows Server ................................................................................................. 64 2.2.1.1. Windows de 32 bits e suas limitações de memória .............................................. 66 2.2.2. SQL Server 2014 de 32 bits ou de 64 bits? ............................................................................ 67 3. INSTALAÇÃO DO SQL SERVER 2014 ................................................................... 71 3.1. Planeamento da instalação .............................................................................................................. 71 3.2. Como instalar o SQL Server 2014 .................................................................................................... 74 3.2.1. SQL Server Installation Center ............................................................................................. 74 3.2.2. Upgrade para SQL Server 2014 ............................................................................................. 83 3.2.3. Instalação a partir da linha de comandos ............................................................................ 85 © FCA – Editora de Informática
ÍNDICE GERAL
VII
4. O SQL SERVER 2014 E A REDE ......................................................................... 93 4.1. Funcionamento dos serviços de rede ............................................................................................. 93 4.1.1. API do SQL Server ................................................................................................................. 94 4.1.1.1. ODBC ......................................................................................................................... 94 4.1.1.2. OLE DB ...................................................................................................................... 94 4.1.1.3. JDBC ........................................................................................................................... 95 4.1.2. Bibliotecas de rede e protocolos do SQL Server ................................................................. 95 4.1.2.1. TCP/IP ........................................................................................................................ 95 4.1.2.2. Named Pipes ............................................................................................................. 96 4.1.2.3. Shared Memory ......................................................................................................... 96 4.1.3. SQL Native Client ................................................................................................................... 96 4.1.4. Configurar os protocolos de rede ......................................................................................... 97 4.1.4.1. SQL Server Services .................................................................................................. 98 4.1.4.2. Configurar protocolos do servidor de base de dados ........................................ 103 4.1.4.3. Configuração do SNAC .......................................................................................... 106 4.1.4.4. Aliases ........................................................................................................................ 109 4.1.5. Serviço SQL Server Browser ............................................................................................... 110 4.2. Dificuldades em estabelecer ligações remotas ............................................................................ 111 4.2.1. Configurar SQL Server para aceitar ligações remotas ..................................................... 112 4.2.2. Iniciar SQL Server Browser ................................................................................................. 112 4.2.3. Configurar firewall ............................................................................................................... 114 4.2.4. Erro de falha de login ........................................................................................................... 116 5. SQL SERVER MANAGEMENT STUDIO ................................................................. 119 5.1. Introdução ........................................................................................................................................ 119 5.1.1. Explorar o SSMS .................................................................................................................. 123 5.1.1.1. Registered Servers ................................................................................................... 123 5.1.1.2. Object Explorer ........................................................................................................ 125 5.1.1.3. Document Area ....................................................................................................... 127 5.1.1.4. Menu View ............................................................................................................... 128 5.1.1.5. Menu Tools .............................................................................................................. 130 5.1.1.6. Barra de ferramentas do SSMS .............................................................................. 131 5.1.1.7. Opções do SSMS ...................................................................................................... 132 5.1.2. Query Editor ......................................................................................................................... 133 6. GESTÃO DO SERVIDOR DE SQL ........................................................................ 137 6.1. Gerir servidores de SQL Server ..................................................................................................... 137 6.1.1. Propriedades gerais .............................................................................................................. 138 6.1.2. Propriedades de memória ................................................................................................... 139 6.1.3. Propriedades de processadores .......................................................................................... 143 6.1.4. Propriedades de segurança ................................................................................................. 145 6.1.5. Propriedades de ligações ..................................................................................................... 147 6.1.6. Propriedades de bases de dados ......................................................................................... 149 6.1.7. Propriedades avançadas ...................................................................................................... 150 6.1.8. Propriedades de permissões ............................................................................................... 154 © FCA – Editora de Informática
VIII
SQL SERVER 2014 – CURSO COMPLETO
6.2. Pastas do motor de base de dados SQL Server ........................................................................... 155 6.2.1. Pasta Databases ..................................................................................................................... 156 6.2.1.1. Bases de dados do sistema (subpasta System Databases) .................................. 156 6.2.1.2. Snapshots de bases de dados (subpasta Database Snapshots) ............................ 157 6.2.1.3. Bases de dados do utilizador ................................................................................. 158 6.2.2. Pasta Security ........................................................................................................................ 158 6.2.2.1. Subpasta Logins ...................................................................................................... 158 6.2.2.2. Subpasta Server Roles ............................................................................................. 158 6.2.2.3. Subpasta Credentials .............................................................................................. 159 6.2.2.4. Subpasta Cryptographic Providers ....................................................................... 159 6.2.2.5. Subpasta Audits ...................................................................................................... 159 6.2.2.6. Subpasta Audit Specifications ............................................................................... 159 6.2.3. Pasta Server Objects ............................................................................................................. 160 6.2.3.1. Subpasta Backup Devices ....................................................................................... 160 6.2.3.2. Subpasta Endpoints ................................................................................................ 160 6.2.3.3. Subpasta Linked Servers ........................................................................................ 160 6.2.3.4. Subpasta Triggers .................................................................................................... 161 6.2.4. Pasta Replication .................................................................................................................. 162 6.2.5. Pasta AlwaysOn High Availability .................................................................................... 162 6.2.6. Pasta Management ............................................................................................................... 162 6.2.6.1. Subpasta Policy Management ................................................................................ 162 6.2.6.2. Subpasta Data Collection ....................................................................................... 163 6.2.6.3. Subpasta Resource Governor ................................................................................. 163 6.2.6.4. Subpasta Extended Events ..................................................................................... 164 6.2.6.5. Subpasta Managed Backups .................................................................................. 164 6.2.6.6. Subpasta Maintenance Plans ................................................................................. 164 6.2.6.7. Subpasta SQL Server Logs ..................................................................................... 164 6.2.6.8. Subpasta Database Mail ......................................................................................... 166 6.2.6.9. Subpasta Distributed Transaction Coordinator .................................................. 166 6.2.6.10. Subpasta Legacy .................................................................................................... 166 6.3. Administrar propriedades de uma base de dados ..................................................................... 166 6.3.1. Página General ...................................................................................................................... 167 6.3.2. Pagina Files............................................................................................................................ 168 6.3.2.1. Criar filegroups adicionais ....................................................................................... 170 6.3.2.2. Criar ficheiros adicionais para a base de dados .................................................. 170 6.3.2.3. Configurar o Autogrowth ...................................................................................... 171 6.3.3. Página Filegroups ................................................................................................................. 171 6.3.4. Página Options ...................................................................................................................... 172 6.3.5. Página Change Tracking ...................................................................................................... 179 6.3.6. Página Permissions .............................................................................................................. 180 6.3.7. Página Extended Properties ................................................................................................ 181 6.3.8. Página Mirroring .................................................................................................................. 182 6.3.9. Página Transaction Log Shipping ...................................................................................... 182 6.4. Tarefas de gestão adicionais do SQL Server ................................................................................ 183 6.4.1. Relatórios informativos do motor de base de dados ....................................................... 183 6.4.2. Criar scripts de objetos de uma base de dados .................................................................. 185 © FCA – Editora de Informática
ÍNDICE GERAL
IX
6.4.3. Detach e attach de uma base de dados ................................................................................ 186 6.4.4. Backup e restore de uma base de dados ............................................................................. 188 6.4.5. Colocar uma base de dados offline ...................................................................................... 189 6.4.6. Shrink ...................................................................................................................................... 190 6.4.6.1. Fazer shrink a uma base de dados ......................................................................... 190 6.4.6.2. Fazer shrink aos ficheiros ........................................................................................ 193 6.4.6.3. Shrink do ficheiro de log .......................................................................................... 195 6.5. Contained databases ........................................................................................................................... 197 7. SEGURANÇA ................................................................................................ 203 7.1. Introdução ........................................................................................................................................ 203 7.2. Características de segurança .......................................................................................................... 203 7.2.1. Autenticação .......................................................................................................................... 204 7.3. Principals e securables ....................................................................................................................... 204 7.3.1. Principals ................................................................................................................................ 205 7.3.1.1. Logins ....................................................................................................................... 205 7.3.1.2. Autenticação Windows .......................................................................................... 206 7.3.1.3. Autenticação mista .................................................................................................. 206 7.3.1.4. Criar logins ............................................................................................................... 206 7.3.1.5 . Server Roles e Database Roles ............................................................................... 211 7.3.1.6. Users ......................................................................................................................... 215 7.3.2. Securables ................................................................................................................................ 218 7.3.2.1 . Schemas ..................................................................................................................... 219 7.4. Permissões ....................................................................................................................................... 222 7.4.1. Tipos de permissões ............................................................................................................. 222 7.4.1.1. Permissões de servidor ........................................................................................... 223 7.4.1.2. Permissões de bases de dados ............................................................................... 223 7.4.1.3 . Permissões a instruções .......................................................................................... 227 7.5. Gestão de políticas .......................................................................................................................... 229 7.6. Encriptação de bases de dados ...................................................................................................... 236 7.6.1. Hierarquia de chave criptográfica ...................................................................................... 237 7.6.1.1 . Service Master Key .................................................................................................. 238 7.6.1.2 . Database Master Key .............................................................................................. 239 7.6.1.3 . Chaves assimétricas ................................................................................................ 241 7.6.1.4. Certificados .............................................................................................................. 242 7.6.1.5. Chaves simétricas .................................................................................................... 243 7.6.2. Transparent Data Encryption.............................................................................................. 246 7.6.2.1. Como ativar o TDE.................................................................................................. 247 7.6.2.2. Encriptação column‐level ou cell‐level ..................................................................... 249 7.6.2.3. Extensible Key Management ................................................................................. 250 7.7. Auditorias no SQL Server .............................................................................................................. 250 7.7.1. Auditoria ao servidor do SQL Server ................................................................................ 255 7.7.2. Auditoria a bases de dados ................................................................................................. 258
© FCA – Editora de Informática
X
SQL SERVER 2014 – CURSO COMPLETO
8. AUTOMAÇÃO, MONITORIZAÇÃO E MANUTENÇÃO ................................................... 261 8.1. Introdução ........................................................................................................................................ 261 8.2. SQL Server Agent ........................................................................................................................... 262 8.2.1. Subpasta Jobs ........................................................................................................................ 266 8.2.1.1. Como criar um job ................................................................................................... 267 8.2.1.2. Criar notificações e operadores para as mesmas................................................. 270 8.2.2. Subpasta Job Activity Monitor ............................................................................................ 272 8.2.3. Subpasta Alerts ..................................................................................................................... 272 8.2.3.1. Criar alertas de erros do SQL Server .................................................................... 274 8.2.4. Subpasta Operators .............................................................................................................. 278 8.2.5. Subpasta Proxies ................................................................................................................... 278 8.2.5.1. Subpasta Error Logs ................................................................................................ 282 8.3. Planos de manutenção .................................................................................................................... 283 8.3.1. Criar plano de manutenção através do assistente ............................................................ 284 8.3.2. Criar plano de manutenção através do SSIS ..................................................................... 290 8.4. SQL Command ................................................................................................................................ 296 8.4.1. Ligação dedicada de administrador ................................................................................... 298 8.5. Database Mail .................................................................................................................................. 298 8.6. SQL Profiler ..................................................................................................................................... 303 8.7. Verificação de consistência da base de dados ............................................................................. 306 8.7.1. Comandos DBCC .................................................................................................................. 307 8.7.1.1. Comando DBCC CHECKDB ................................................................................. 307 8.7.1.2. Comando DBCC CHECKTABLE .......................................................................... 310 8.7.1.3 . Comando DBCC CHECKALLOC ......................................................................... 311 8.7.1.4. Comando DBCC CHECKCATALOG ................................................................... 312 8.7.1.5. Comando DBCC CHECKCONSTRAINTS .......................................................... 313 8.7.1.6 . Comando DBCC CHECKIDENT .......................................................................... 314 8.8. Resource Governor ......................................................................................................................... 316 8.8.1. Resource pools ......................................................................................................................... 318 8.8.2. Workload groups ..................................................................................................................... 320 8.8.3. Classifications ......................................................................................................................... 323 8.9. Extended Events .............................................................................................................................. 325 8.9.1. Packages (pacotes) ................................................................................................................. 325 8.9.2. Events (eventos) ..................................................................................................................... 326 8.9.3. Targets (destinos) .................................................................................................................. 326 8.9.4. Actions (ações) ....................................................................................................................... 327 8.9.5. Predicates (predicados) ......................................................................................................... 327 8.9.6. Interface gráfico .................................................................................................................... 327 8.10. Distributed Replay ........................................................................................................................ 337 8.10.1. Pré‐processamento (Preprocess) ......................................................................................... 338 8.10.2. Replay .................................................................................................................................... 339 8.10.3. Instalação ............................................................................................................................. 339 8.10.3.1. Pré‐requisitos ......................................................................................................... 339 8.10.3.2. Instalação através do SQL Server Installation Center ...................................... 340
© FCA – Editora de Informática
ÍNDICE GERAL
XI
9. ADMINISTRAÇÃO MULTISSERVIDOR .................................................................. 343 9.1. Ferramenta SQL Server Utility ...................................................................................................... 343 9.1.1. Criar um UCP ....................................................................................................................... 346 9.1.2. Registar uma instância no UCP .......................................................................................... 349 9.1.3. Utility Explorer ..................................................................................................................... 353 9.1.3.1 . Nó Managed Instances ........................................................................................... 356 9.1.3.2. Nó Utility Administration ...................................................................................... 360 9.1.4. Gerir definições através do Utility Administration ......................................................... 361 9.1.4.1. Separador Policy ...................................................................................................... 361 9.1.4.2. Separador Security .................................................................................................. 364 9.1.4.3. Separador Data Warehouse ................................................................................... 365 10. BACKUPS E RESTORES .................................................................................. 367 10.1. Backups .......................................................................................................................................... 367 10.1.1. Transaction log ...................................................................................................................... 368 10.1.2. Modelos de recuperação .................................................................................................... 368 10.1.2.1. Modelo de recuperação Simple ........................................................................... 369 10.1.2.2. Modelo de recuperação Full ................................................................................ 369 10.1.2.3. Modelo de recuperação Bulk‐logged .................................................................. 370 10.1.3. Tipos de backups ................................................................................................................ 371 10.1.3.1. Backups de dados .................................................................................................. 372 10.1.3.2. Backups diferenciais ............................................................................................. 379 10.1.3.3. Backup dos logs ...................................................................................................... 380 10.1.3.4. Copy Only Backups .............................................................................................. 383 10.1.3.5. Database Backup Compression ........................................................................... 384 10.1.3.6. Encriptação dos backups ...................................................................................... 386 10.1.3.7. Backup para a nuvem ou para URL .................................................................... 389 10.2. Restores ............................................................................................................................................ 395 10.2.1. Restauro completo, diferencial e do log ........................................................................... 395 10.2.2. Botão Timeline (Point In Time) ......................................................................................... 401 10.2.3. Restauro de ficheiros e grupos de ficheiros .................................................................... 404 10.2.4. Restauro de páginas de uma base de dados ................................................................... 406 10.2.5. Restauro de backups encriptados ..................................................................................... 408 10.2.6. Restauro a partir da nuvem ............................................................................................... 409 10.3. Sintaxe do comando Restore ....................................................................................................... 410 11. ALTA DISPONIBILIDADE ............................................................................... 415 11.1. Introdução ...................................................................................................................................... 415 11.2. Soluções de alta disponibilidade ................................................................................................. 418 11.3. SQL Server AlwaysOn ................................................................................................................. 419 11.3.1. Availability Groups (grupos de disponibilidade) .......................................................... 421 11.3.2. AlwaysOn Failover Cluster Instances (FCI) .................................................................... 426 11.4. Database Mirroring ....................................................................................................................... 428 11.4.1. Modos de operação ............................................................................................................ 429 11.4.1.1. Modo de alta disponibilidade .............................................................................. 430 © FCA – Editora de Informática
XII
SQL SERVER 2014 – CURSO COMPLETO
11.4.1.2. Modo de alta proteção .......................................................................................... 431 11.4.1.3. Modo de alta performance ................................................................................... 431 11.4.2. Pré‐requisitos ...................................................................................................................... 431 11.4.3. Configuração ....................................................................................................................... 432 11.4.3.1. Autenticação por Windows ................................................................................. 433 11.4.3.2. Autenticação por certificados .............................................................................. 435 11.4.3.3. Estabelecer o mirror ............................................................................................... 439 11.4.3.4. Estabelecer a ligação principal/mirror .................................................................. 440 11.4.3.5. Criação do Database Mirroring através do SSMS ............................................. 441 11.4.4. Resolução de problemas .................................................................................................... 445 11.4.5. Monitorizar o Database Mirroring ................................................................................... 448 11.4.5.1. Database Mirroring Monitor ................................................................................ 448 11.4.5.2. Stored procedures do sistema e views .................................................................... 450 11.5. Database Snapshot ........................................................................................................................ 450 11.5.1. Como funciona o Database Snapshot .............................................................................. 451 11.5.2. Criar e gerir um Database Snapshot ................................................................................ 453 11.5.3. Reverter o Database Snapshot .......................................................................................... 456 11.5.4. Limitações dos snapshots .................................................................................................... 456 11.6. SQL Server e Windows Clustering ............................................................................................. 457 11.6.1. O que é o cluster? ................................................................................................................ 458 11.6.1.1. Componentes de um cluster ................................................................................. 458 11.7. Log Shipping ................................................................................................................................. 459 11.7.1. Cenários de implementação .............................................................................................. 460 11.7.1.1. Servidor em espera (warm standby) ..................................................................... 460 11.7.1.2. Recuperação de desastres (disaster recovery) ...................................................... 461 11.7.1.3. Base de dados de suporte a relatórios ................................................................ 461 11.7.2. Arquitetura do Log Shipping ............................................................................................ 462 11.7.3. Infraestrutura ...................................................................................................................... 464 11.7.4. Implementação do Log Shipping ..................................................................................... 464 11.7.4.1. Primeiros passos .................................................................................................... 465 11.7.4.2. Implementação através do SSMS ........................................................................ 465 11.7.4.3. Implementação através de comandos T‐SQL .................................................... 471 11.7.5. Monitorizar o Log Shipping .............................................................................................. 476 11.7.5.1. Monitorizar através do relatório de estado do Transaction Log Shipping .... 476 11.7.5.2. Verificar o histórico de jobs do SQL Server Agent ............................................ 477 11.7.5.3. Verificar o log do SQL Server ............................................................................... 477 11.7.6. Mudança de função dos servidores ................................................................................. 477 11.7.6.1. Failover planeado ................................................................................................... 478 11.7.6.2. Failover não planeado ............................................................................................ 479 11.7.7. Remover o Log Shipping ................................................................................................... 479 11.8. Conclusão ....................................................................................................................................... 481 12. REPLICAÇÃO.............................................................................................. 483 12.1. Replicação ...................................................................................................................................... 483 12.1.1. Conceitos gerais .................................................................................................................. 483 12.1.1.1. Topologias .............................................................................................................. 485 © FCA – Editora de Informática
ÍNDICE GERAL
XIII
12.1.2. Tipos de replicação ............................................................................................................. 489 12.1.2.1. Replicação por snapshot ........................................................................................ 490 12.1.2.2. Replicação transacional ........................................................................................ 490 12.1.2.3. Replicação por merge ............................................................................................. 490 12.1.2.4. Replicação peer‐to‐peer ........................................................................................... 491 12.1.2.5. Publicação Oracle .................................................................................................. 491 12.1.3. Subscrições push e pull ....................................................................................................... 491 12.1.3.1. Subscrição push ...................................................................................................... 491 12.1.3.2. Subscrição pull ....................................................................................................... 491 12.1.4. Agentes de replicação ........................................................................................................ 492 12.1.5. Implementar a replicação por merge ................................................................................ 493 12.1.5.1. Configurar o distribuidor ..................................................................................... 493 12.1.5.2. Configurar o publicador ....................................................................................... 496 12.1.5.3. Configurar o subscritor ........................................................................................ 503 12.1.6. Implementar a replicação peer‐to‐peer .............................................................................. 507 12.1.6.1. Configurar o distribuidor para replicação ......................................................... 508 12.1.6.2. Configurar a publicação no primeiro nó ............................................................ 509 12.1.6.3. Habilitar a publicação para replicação peer‐to‐peer ........................................... 509 12.1.6.4. Configurar a topologia peer‐to‐peer ...................................................................... 510 12.1.6.5. Acrescentar um novo nó numa replicação peer‐to‐peer existente .................... 513 12.1.7. Monitorizar a replicação .................................................................................................... 513 12.1.7.1. Replication Monitor .............................................................................................. 513 12.1.7.2. Performance Monitor ............................................................................................ 518 12.1.7.3. Dynamic Views de replicação .............................................................................. 519 12.1.7.4. Stored procedure sp_replcounters .................................................................. 519 12.1.8. Como eliminar a replicação ............................................................................................... 520 12.1.8.1. Criar scripts da replicação ..................................................................................... 520 12.1.8.2. Eliminar subscrições locais .................................................................................. 521 12.1.8.3. Eliminar publicações locais .................................................................................. 521 12.1.8.4. Eliminar publicação e distribuição ...................................................................... 522 12.1.9. Gerir as palavras‐passe da replicação .............................................................................. 523 12.2. Conclusão ....................................................................................................................................... 524 13. SQL SERVER INTEGRATION SERVIES ............................................................... 525 13.1. Introdução ...................................................................................................................................... 525 13.2. Como desenhar pacotes do SSIS ................................................................................................. 527 13.2.1. Ambiente de desenvolvimento ......................................................................................... 528 13.2.1.1. Criar um pacote através do SSDT ....................................................................... 530 13.2.2. Assistente de importação e exportação de dados ........................................................... 535 13.2.3. Componentes do Control Flow ......................................................................................... 539 13.2.3.1. Tarefas .................................................................................................................... 540 13.2.3.2. Contentores ............................................................................................................ 543 13.2.3.3. Restrições de precedência .................................................................................... 544 13.2.3.4. Gestores de ligação ................................................................................................ 547 13.2.4. Componentes do Data Flow .............................................................................................. 547 © FCA – Editora de Informática
XIV
SQL SERVER 2014 – CURSO COMPLETO
13.2.4.1. Agrupar componentes .......................................................................................... 553 13.3. Controladores de eventos ............................................................................................................ 554 13.3.1. Eventos em modo de execução ......................................................................................... 555 13.4. Implementação de pacotes ........................................................................................................... 556 13.4.1. Ciclo de implementação de um projeto ........................................................................... 558 13.5. Criação de um projeto SSIS .......................................................................................................... 559 13.5.1. Criar um catálogo ............................................................................................................... 559 13.5.2. Criar projeto de SSIS .......................................................................................................... 562 13.5.3. Implementação do projeto ................................................................................................. 563 13.5.4. Criar ambientes e variáveis de ambiente ......................................................................... 565 13.5.5. Executar o projeto ............................................................................................................... 567 13.5.6. Validar o projeto ................................................................................................................. 568 14. SQL SERVER REPORTING SERVICES ................................................................ 571 14.1. Introdução ...................................................................................................................................... 571 14.1.1. Bases de dados do SSRS ..................................................................................................... 571 14.1.2. Report Server ...................................................................................................................... 572 14.1.2.1. Interface de programação ..................................................................................... 573 14.1.2.2. Extensões de autenticação .................................................................................... 573 14.1.2.3. Processador de relatórios ..................................................................................... 573 14.1.2.4. Processador de dados ........................................................................................... 573 14.1.2.5. Renderização de relatórios ................................................................................... 573 14.1.2.6. Processador de agendamento e transferência.................................................... 574 14.1.3. Report Manager .................................................................................................................. 574 14.1.4. Report Designer .................................................................................................................. 574 14.1.5. Utilitários de linha de comandos ...................................................................................... 575 14.1.6. Report Builder ..................................................................................................................... 575 14.1.7. Integração com SSMS ......................................................................................................... 575 14.1.8. Reporting Services Configuration Manager.................................................................... 575 14.2. Configuração do SSRS .................................................................................................................. 576 14.3. Criar um relatório simples ........................................................................................................... 577 14.3.1. Criar manualmente relatório ............................................................................................. 584 14.3.2. Novas potencialidades ....................................................................................................... 589 14.3.2.1. Tablix ...................................................................................................................... 589 14.3.2.2. Gauge ...................................................................................................................... 590 14.3.2.3. Região de dados de gráfico .................................................................................. 591 14.3.3. Usar o Report Builder 3.0 .................................................................................................. 592 14.3.3.1. Data sources ............................................................................................................. 594 14.3.3.2. Datasets ................................................................................................................... 595 14.3.3.3. Construir o relatório através do Report Builder 3.0 .......................................... 596 14.4. Conclusão ....................................................................................................................................... 599 GLOSSÁRIO DE TERMOS – PORTUGUÊS EUROPEU/PORTUGUÊS DO BRASIL ...................... 601 ÍNDICE REMISSIVO ........................................................................................... 603
© FCA – Editora de Informática
SEGURANÇA
7.5
229
GESTÃO DE POLÍTICAS
Uma das opções que surgiram no SQL Server 2008, bastante apreciada pelos DBA, é o Policy‐Based Management (PBM). Inicialmente denominado Declarative Management Framework, é um sistema de gestão baseado em políticas, muito idêntico ao sistema de políticas de grupo do Windows. O PBM permite ao DBA criar políticas de SQL Server e, posteriormente, implementá‐las e distribuí‐las por vários servidores. As políticas podem ser agendadas para correr periodicamente ou a pedido. Além disso, a política pode simplesmente regis‐ tar a sua violação ou, de forma pró‐ativa, evitar a concretização de uma ação, fazendo o roll back da transação e assinalando um erro. Vejamos um exemplo da utilização do PBM: uma empresa do ramo da Distri‐ buição tem uma sede com um sistema central e trinta delegações, cada uma com o seu servidor a correr o SQL Server e a replicar os seus dados para o servidor da sede. O DBA necessita de realizar uma alteração para que todos os servidores do grupo obedeçam a uma determinada configuração. Até ao SQL Server 2005, a única hipótese seria entrar em cada servidor e fazer a verificação manualmente ou através de um script. Com o PBM, podemos garantir essa configuração em todos os servidores. Outro exemplo ainda: a mesma companhia estabeleceu que nenhum servidor pode ter a correr o SQL Mail – muito facil‐ mente se pode criar uma política que assegure o cumprimento dessa restrição. As políticas são facilmente exportáveis para outros servidores num ambiente multisservidor. No entanto, o PBM é restrito ao motor de base de dados, não estendendo a sua influência a outros componentes, como, por exemplo, o Analysis Services ou o Reporting Services. A ferramenta usada para trabalhar com o PBM é o SSMS, através do qual é possível criar políticas que previnam alterações violadoras das suas normas, fazer o alerta e o subsequente registo de violação de normas. No entanto, antes de vermos como se criam as políticas, existem alguns conceitos que temos de compreender: Targets (objetos) – São entidades sobre as quais se aplicam as políticas. Essas entidades podem ser servidores, bases de dados, tabelas, logins ou qualquer outro objeto ao qual se possa aplicar uma política; Facets (facetas) – É um conjunto de propriedades lógicas que caracterizam o comportamento de certos tipos de targets. As facetas estão predefinidas no SQL Server e expõem condições que podem ser testadas dentro de uma política. O número e as características das propriedades que existem numa faceta só podem ser alterados por quem a criou. Um tipo de target pode implementar uma ou mais facetas e uma faceta pode ser implementada por © FCA – Editora de Informática
230
SQL SERVER 2014 – CURSO COMPLETO um ou mais tipos de targets. Algumas facetas só podem ser implementadas em versões específicas do SQL Server; por exemplo, a propriedade Database Mail da faceta Surface Area Configuration só pode ser aplicada às versões 2005 e 2008. Como exemplo de uma faceta, temos Login, que apresenta condições para testar se um login está bloqueado, qual a base de dados predefinida, qual a última alteração da palavra‐passe, etc.;
Para uma lista completa de todas as facetas e suas propriedades consulte SQL Server 2014 Books Online. Conditions (condições) – São expressões booleanas e atestam o estado de uma faceta. Uma condição testa um atributo para se assegurar de que cumpre um critério predefinido; Policies (políticas) – Uma política define uma ou mais condições a serem aplicadas a um servidor. Os DBA definem políticas de modo a assegurar que certas condições são cumpridas. Agora que já definimos o que é uma política e quais são os seus aspetos funda‐ mentais, vejamos um exemplo de criação de uma política. Existem duas possibilidades para criar as condições que iremos usar nas políticas: através da opção Conditions no nó Management do Object Explorer ou aquando da criação de uma política. Neste exemplo vamos recorrer à segunda possibilidade: 1)
No Object Explorer, expandir os nós Management e Policy Management, clicar com o botão direito do rato em Policies e selecionar New policy… (Figura 7.18).
FIGURA 7.18 – Nova política 2)
Surge uma janela na qual vamos ter de preencher vários critérios, dois deles assinalados como obrigatórios: o nome e a condição.
3)
No campo Name, escrever “NomedeTabelas”; de seguida, clicar na combo box do campo Check condition e selecionar New Condition… (Figura 7.19).
© FCA – Editora de Informática
SEGURANÇA
231
FIGURA 7.19 – Nova política: escolha/criação de condições
Como já foi referido, podemos criar uma nova condição nesta altura ou através da opção Conditions do nó Management do Object Explorer. No caso de a condição já existir, deveríamos selecioná‐la na lista de condições existentes. 4)
Ao selecionar a opção de criar uma nova condição (New condition…), surge a janela Create New Condition (Figura 7.20).
FIGURA 7.20 – Nova condição © FCA – Editora de Informática
232
SQL SERVER 2014 – CURSO COMPLETO 5)
Temos, então, de introduzir o nome da condição – que no nosso exemplo será “CondicaoNomeTabelas” – e, de seguida, escolher o tipo de faceta que quere‐ mos usar; para isso, clicamos na combo box respetiva e, na janela de seleção, escolhemos Multipart Name.
6)
Na janela Expression, vamos escolher a expressão que vai reger a nossa condição (Figura 7.21). Assim: Na primeira linha, escolhemos @Name no campo Field, selecionamos LIKE no campo Operator e escrevemos ‘tbl%’ em Value; Na segunda linha, escolhemos AND no campo AndOr, selecionamos @Schema no campo Field e escrevemos ‘programador’ em Value; Na terceira linha, escolhemos OR no campo AndOr, selecionamos @Schema no campo Field e escrevemos ‘teste‘ em Value.
FIGURA 7.21 – Construir a expressão através da grelha de expressões
7)
É também possível criar grupos de expressões. No nosso exemplo temos de agrupar ambos os campos @Schema, dado que a lógica estaria incorreta se não o fizéssemos. Para efetuar esse agrupamento: selecionar as duas últimas linhas, clicar com o botão direito do rato sobre as linhas selecionadas e, no menu, escolher Group Clauses (Figura 7.22).
FIGURA 7.22 – Agrupar as cláusulas da expressão
8)
Após estar tudo preenchido, premimos o botão OK, o que nos levará nova‐ mente à janela Create New Policy (Figura 7.23).
9)
No campo Against targets temos todos os possíveis targets associados à faceta escolhida aquando da criação da condição – no nosso caso Multipart Name. Como neste exemplo só queremos controlar o nome das tabelas, vamos selecionar Table na check box respetiva (Figura 7.24).
© FCA – Editora de Informática
SEGURANÇA
233
FIGURA 7.23 – Criação de política
FIGURA 7.24 – Seleção do target
10) Como queremos aplicar a política a uma só base de dados, vamos abrir a combo box correspondente a in Every e selecionar New condition…, o que fará abrir novamente a janela correspondente à nova condição. Aqui vamos definir a condição de seleção da base de dados à qual queremos atribuir a política (Figura 7.25). Assim: escolhemos @Name no campo Field, seleciona‐ mos = no campo Operator e escrevemos ‘Vendas’ em Value; no final, premimos OK. 11) Voltando à janela de criação de políticas, na seleção do target vamos ter um resultado como o da Figura 7.26. © FCA – Editora de Informática
234
SQL SERVER 2014 – CURSO COMPLETO
FIGURA 7.25 – Seleção da base de dados
FIGURA 7.26 – Política com targets definidos
12) Agora falta‐nos definir quando é que a política será aplicada. No campo Evaluation Mode temos quatro opções: On demand – A política é aplicada apenas quando tal é solicitado pelo DBA. Esta é a opção predefinida; On change: prevent – As alterações serão canceladas caso não estejam em conformidade com a política;
© FCA – Editora de Informática
SEGURANÇA
235
On change: log only – Caso haja violação da política, será criada uma entrada no registo. Assim, o processo continuará sem indicação de erro, sendo, no entanto, criada a entrada nas tabelas de histórico da base de dados “msdb”. Esse registo pode ser consultado no histórico de políticas no menu de contexto das políticas; On schedule – A política será verificada periodicamente e será criado um registo por cada violação da política. 13) No nosso exemplo vamos escolher On change: prevent para bloquear qualquer tentativa de violação da política. Por predefinição, esta política corre em qualquer servidor em que seja aplicada; no caso de querermos aplicá‐la a um servidor específico, podemos criar uma condição de seleção em Server restriction. 14) Não esquecer de selecionar a check box Enabled (ver Figura 7.26), que está inativa se a opção selecionada no campo Evaluation Mode for On demand. 15) Para finalizar a criação das políticas, selecionamos a página Description (Figura 7.27). Aqui podemos acrescentar informação que queiramos mostrar caso haja violação da política. É também possível acrescentar um link como parte da política de erros, link esse que será mostrado juntamente com a mensagem e que poderá encaminhar o utilizador para um documento explicativo de procedimentos, ou algo do género.
FIGURA 7.27 – Descrição da política e texto de aviso © FCA – Editora de Informática
236
SQL SERVER 2014 – CURSO COMPLETO
Após a criação das políticas, há que testar o seu funcionamento; para isso, corremos o seguinte código: use Vendas GO CREATE TABLE encomendas (Enc_no INT NOT NULL, Data_enc DATETIME2 NOT NULL, Artigo_enc VARCHAR(50) NOT NULL, Qtd_enc FLOAT NOT NULL, Valor_enc DECIMAL(2) NULL) GO
Após a execução do código devemos obter o seguinte resultado: Policy 'NomedeTabelas' has been violated by 'SQLSERVER:\SQL\SERVIDOR\ Databases\Vendas\Tables\dbo.encomendas'. This transaction will be rolled back. Policy condition: '@Name LIKE 'tbl%' AND (@Schema = 'programador' OR @Schema = 'teste')' Policy description: '' Additional help: ' Violou a politica de criação de nomes de tabelas prefixo tbl obrigatório' : '' Statement: 'CREATE TABLE encomendas (Enc_no INT NOT NULL, Data_enc DATETIME2 NOT NULL, Artigo_enc VARCHAR(50) NOT NULL, Qtd_enc FLOAT NOT NULL, Valor_enc ...'. Msg 3609, Level 16, State 1, Procedure sp_syspolicy_dispatch_event, Line 65 The transaction ended in the trigger. The batch has been aborted.
7.6
ENCRIPTAÇÃO DE BASES DE DADOS
A segurança ao nível do servidor é, normalmente, da responsabilidade de um administrador de sistemas; no entanto, uma base de dados é, por norma, um dos produtos mais importantes que uma empresa possui. Habitualmente, o DBA deixa os problemas de segurança de dados para o administrador do sistema, que tem de se preocupar com as firewalls, o antivírus, etc. Contudo, o SQL Server oferece ao DBA uma proteção suplementar da base de dados: a sua encriptação. Mas porquê encriptar a base de dados se o sistema estiver bem protegido? A resposta é simples: defesa em profundidade. A defesa em profundidade é um conceito que foi desenvolvido pela Agência Nacional de Segurança dos Estados Unidos (conhecida pela sigla NSA) e que consiste em proteger um sistema contra quaisquer ataques através de métodos variáveis. É, no fundo, uma tática de defesa por camadas, em que o atacante sempre que consegue ultrapassar © FCA – Editora de Informática
SEGURANÇA
237
uma camada vai encontrar uma outra que o fará demorar mais tempo até conseguir atingir o objetivo, permitindo assim ao “defensor” ganhar tempo para evitar o ataque. Sabemos que é possível evitar ataques a uma base de dados, mas o que acontece se, por exemplo, alguém conseguir “deitar a mão” a um suporte de cópia de segurança, uma tape? É simples restaurar a base de dados e aceder aos dados. O SQL Server oferece‐ ‐nos uma solução: a encriptação da base de dados através de chaves e a proteção dessas chaves através de um certificado digital. O SQL Server oferece‐nos dois níveis de encriptação: ao nível de base de dados e ao nível de coluna. Ambos têm em comum o facto de usarem a hierarquia de chave criptográfica, que analisaremos de seguida.
7.6.1
HIERARQUIA DE CHAVE CRIPTOGRÁFICA
No topo da hierarquia vamos encontrar a API Windows Data Protection (Windows DPAPI), que protege a hierarquia da chave ao nível do sistema operativo, e também a Service Master Key (SMK) para a instância do SQL Server. A SMK protege igualmente a Database Master Key (DMK), que está armazenada ao nível do utilizador da base de dados e que protege os certificados e as chaves assimétricas. Estas, por sua vez, protegem as chaves simétricas, que têm à sua responsabilidade os dados do utilizador (Figura 7.28).
FIGURA 7.28 – Hierarquia de chave criptográfica (adaptado de: Microsoft MSDN; legenda: Pwd = password [palavra‐passe]) © FCA – Editora de Informática
238
SQL SERVER 2014 – CURSO COMPLETO
Esta hierarquia permite ao servidor abrir as chaves e desencriptar os dados, com encriptação ao nível tanto de base de dados, como de coluna. A diferença principal é que, no caso de usarmos encriptação ao nível de coluna, todas as chaves situadas abaixo do DMK podem ser protegidas por palavra‐passe, em vez por outra chave. Isto quebra a cadeia de encriptação e obriga o utilizador a introduzir uma palavra‐passe. Numa encriptação ao nível de base de dados (Transparent Data Encryption – TDE) toda a cadeia tem de ser mantida para que o servidor possa, automaticamente, fornecer o acesso aos dados. 7.6.1.1 SERVICE MASTER KEY
A Service Master Key (SMK) é a chave principal que regula tudo, isto é, todas as chaves e certificados do SQL Server. É uma chave simétrica criada automaticamente durante a instalação do programa. Caso esta chave esteja comprometida, toda a segurança do SQL Server ficará igualmente em risco. É de extrema importância executar uma cópia de segurança da SMK para, no caso de se corromper por qualquer razão, ser possível repô‐la. A operação de backup da SMK é feita através da seguinte instrução: BACKUP SERVICE MASTER KEY TO FILE = 'C:\BACKUPS\SMK_BACKUP.DAT' ENCRYPTION BY PASSWORD = 'a4XZ9$lj=5hd%';
No nosso exemplo, a SMK é copiada para o ficheiro SMK_BACKUP.DAT, armazenado na pasta C:\BACKUPS, e encriptada pela chave indicada. A chave de encriptação é necessária se precisarmos de restaurar a SMK. Na eventualidade de necessitarmos de restaurar ou regenerar a SMK, o SQL Server vai tentar desencriptar e encriptar todas as chaves da hierarquia de chave criptográfica. Se uma dessas operações falhar, todo o processo estará condenado ao fracasso. Ainda assim, para aceder aos dados podemos usar a instrução ALTER SERVICE MASTER KEY, com a opção FORCE; no entanto, esta opção vai provocar a perda de dados. A sintaxe de ALTER MASTER KEY é a seguinte: ALTER SERVICE MASTER KEY [ { <opção_regenerar> | <opção_recover> } ] | [ { ADD | DROP } ENCRYPTION BY MACHINE KEY ] < opção_regenerar > ::= [ FORCE ] REGENERATE < opção_recover > ::= { WITH OLD_ACCOUNT = 'conta_windows' , OLD_PASSWORD = 'palavra_passe' } | { WITH NEW_ACCOUNT = 'conta_windows' , NEW_PASSWORD = 'palavra_passe' } © FCA – Editora de Informática