Instant Access to Exam ref 70-764 administering a sql database infrastructure victor isakov ebook Fu

Page 1


https://ebookmass.com/product/exam-ref-70-764-administeringa-sql-database-infrastructure-victor-isakov/

Instant digital products (PDF, ePub, MOBI) ready for you

Download now and discover formats that fit your needs...

Exam Ref 70-768 Developing SQL Data Models Varga

https://ebookmass.com/product/exam-ref-70-768-developing-sql-datamodels-varga/

ebookmass.com

OCA Oracle Database SQL Exam Guide (Exam 1Z0-071) 1st Edition Steve O’Hearn

https://ebookmass.com/product/oca-oracle-database-sql-exam-guideexam-1z0-071-1st-edition-steve-ohearn/

ebookmass.com

Pro SQL Server 2022 Wait Statistics: A Practical Guide to Analyzing Performance in SQL Server and Azure SQL Database, 3rd Edition Thomas Larock

https://ebookmass.com/product/pro-sql-server-2022-wait-statistics-apractical-guide-to-analyzing-performance-in-sql-server-and-azure-sqldatabase-3rd-edition-thomas-larock/

ebookmass.com

eTextbook 978-1429219617 Raven Biology of Plants 8th Edition by Ray

https://ebookmass.com/product/etextbook-978-1429219617-raven-biologyof-plants-8th-edition-by-ray-f-evert/

ebookmass.com

Pocket

Anesthesia (Pocket Notebook Series) 3rd Edition, (Ebook PDF)

https://ebookmass.com/product/pocket-anesthesia-pocket-notebookseries-3rd-edition-ebook-pdf/

ebookmass.com

Preadjusted Edgewise Fixed Orthodontic Appliances: Principles and Practice Farhad B. Naini

https://ebookmass.com/product/preadjusted-edgewise-fixed-orthodonticappliances-principles-and-practice-farhad-b-naini/

ebookmass.com

Café Flores: An escapist romantic summer read for 2020 (Escape to Italy Book 5) Melissa Hill

https://ebookmass.com/product/cafe-flores-an-escapist-romantic-summerread-for-2020-escape-to-italy-book-5-melissa-hill/

ebookmass.com

Three-Inch Teeth (Joe Pickett) C.J. Box

https://ebookmass.com/product/three-inch-teeth-joe-pickett-c-j-box/

ebookmass.com

Grand Designs: Consumer Markets and Home-Making 1st ed. Edition Aneta Podkalicka

https://ebookmass.com/product/grand-designs-consumer-markets-and-homemaking-1st-ed-edition-aneta-podkalicka/

ebookmass.com

The

https://ebookmass.com/product/the-wiley-5g-ref-security-1st-editionrahim-tafazolli/

ebookmass.com

SQL Database Infrastructure

Exam Ref 70-764 Administering a SQL Database Infrastructure

Published with the authorization of Microsoft Corporation by: Pearson Education, Inc.

Copyright © 2018 by Pearson Education

All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, request forms, and the appropriate contacts within the Pearson Education Global Rights & Permissions Department, please visit www.pearsoned.com/permissions/. No patent liability is assumed with respect to the use of the information contained herein. Although every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions. Nor is any liability assumed for damages resulting from the use of the information contained herein.

ISBN-13: 978-1-5093-0383-0

ISBN-10: 1-5093-0383-9

Library of Congress Control Number: 2017953072

First Printing September 1 17

Trademarks

Microsoft and the trademarks listed at https://www.microsoft.com on the “Trademarks” webpage are trademarks of the Microsoft group of companies. All other marks are property of their respective owners.

Warning and Disclaimer

Every effort has been made to make this book as complete and as accurate as possible, but no warranty or fitness is implied. The information provided is on an “as is” basis. The authors, the publisher, and Microsoft Corporation shall have neither liability nor responsibility to any person or entity with respect to any loss or damages arising from the information contained in this book or programs accompanying it.

Special Sales

For information about buying this title in bulk quantities, or for special sales opportunities (which may include electronic versions; custom cover designs; and content particular to your business, training goals, marketing focus, or branding interests), please contact our corporate sales department at corpsales@pearsoned.com or (800) 382-3419.

For government sales inquiries, please contact governmentsales@pearsoned.com.

For questions about sales outside the U.S., please contact intlcs@pearson.com.

Editor-in-Chief

Greg Wiegand

Acquisitions Editor

Trina MacDonald

Development Editor

Troy Mott

Managing Editor

Sandra Schroeder

Senior Project Editor

Tracey Croom

Editorial Production

Backstop Media

Copy Editor

Christina Rudloff

Indexer

Julie Grady

Proofreader

Christina Rudloff

Technical Editor

Martin ‘MC’ Brown

Cover Designer

Creative, Seattle

Twist

Contents at a glance

Introduction

Preparing for the exam

Chapter 1 Configure data access and auditing

Chapter 2 Manage backup and restore of databases

Chapter 3 Manage and monitor SQL Server instances

Chapter 4 Manage high availability and disaster recovery

Index

Contents

Introduction

Organization of this book

Microsoft certifications

Acknowledgments

Microsoft Virtual Academy

Quick access to online references

Errata, updates, & book support

We want to hear from you

Stay in touch

Preparing for the exam

Chapter 1 Configure data access and auditing

Skill 1.1: Configure encryption

Implement column-level encryption

Implement Always Encrypted

Configure transparent data encryption

Implement backup encryption

Configure encryption for connections

Troubleshoot encryption errors

Skill 1.2 Configure data access and permissions

Create and maintain users

Create and maintain custom roles

Manage database object permissions

Configure row-level security

Configure dynamic data masking

Configure user options for Azure SQL Database

Skill 1.3: Configure auditing

Configure an audit on SQL Server

Query the SQL Server audit log

Manage a SQL Server audit

Configure an Azure SQL Database audit

Analyze audit logs and reports from Azure SQL Database

Thought experiment

Thought experiment answers

Chapter summary

Chapter 2 Manage backup and restore of databases

Skill 2.1: Develop a backup strategy

Design a backup strategy

Back up databases

Back up VLDBs

Manage transaction log backups

Configure backup automation

Skill 2.2 Restore databases

Design a restore strategy

Restore a database

Perform piecemeal restores

Perform page recovery

Perform point-in-time recovery

Restore a filegroup

Develop a plan to automate and test restores

Skill 2.3 Manage database integrity

Implement database consistency checks

Identify database corruption

Recover from database corruption

Thought experiment

Thought experiment answers

Chapter summary

Chapter 3 Manage and monitor SQL Server instances

Skill 3.1: Monitor database activity

Monitor current sessions

Identify sessions that cause blocking activity

Identify sessions that consume tempdb resources

Configure the data collector

Skill 3.2 Monitor queries

Manage the Query Store

Configure Extended Events and trace events

Identify problematic execution plans

Troubleshoot server health using Extended Events

Skill 3.3 Manage indexes

Identify and repair index fragmentation

Identify and create missing indexes

Identify and drop underutilized indexes

Manage existing columnstore indexes

Skill 3.4 Manage statistics

Identify and correct outdated statistics

Implement Auto Update Statistics

Implement statistics for large tables

Skill 3.5 Monitor SQL Server instances

Configure database mail

Create and manage operators

Create and manage SQL Agent alerts

Define custom alert actions

Define failure actions

Configure policy based management

Identify available space on data volumes

Identify the cause of performance degradation

Thought experiment

Thought experiment answers

Chapter summary

Chapter 4 Manage high availability and disaster recovery

Skill 4.1: Design a high availability solution

Skill 4.2: Design a disaster recovery solution

Skill 4.3: Implement log shipping

Architect log shipping

Configure log shipping

Monitor log shipping

Skill 4.4: Implement Availability Groups

Architect Availability Groups

Configure Windows clustering

Create an Availability Group

Configure read-only routing

Monitor Availability Groups

Manage failover

Create Distributed Availability Group

Skill 4.5: Implement failover clustering

Architect failover clustering

Configure failover clustering

Manage Shared Disks

Configure Cluster Shared Volumes

Thought experiment

Thought experiment answers

Chapter summary

Index

What do you think of this book? We want to hear from you!

Microsoft is interested in hearing your feedback so we can continually improve our books and learning resources for you. To participate in a brief online survey, please visit:

https://aka.ms/tellpress

Introduction

First and foremost, thank you for your purchase and all the best of luck in your endeavor to become certified and an expert in the SQL Server data platform. The 70-764 exam is intended for database professionals who perform installation, maintenance, and configuration tasks on the SQL Server platform. Other responsibilities include setting up database systems, making sure those systems operate efficiently, and regularly storing, backing up, and securing data from unauthorized access.

This book is geared toward database administrators who are looking to train in the administration of SQL Server 2016 infrastructure. To help you prepare for the exam you can use Microsoft Hyper-V to create SQL Server virtual machines (VMs) and follow the examples in this book. You can download an evaluation copy of Windows Server 2016 from https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2016/. SQL Server 2016 can be downloaded for free from https://www.microsoft.com/en-us/sql-server/sql-server-downloads. You can download the AdventureWorks databases from https://msftdbprodsamples.codeplex.com/. The Wide World Importers database can be downloaded from https://github.com/Microsoft/sql-serversamples/releases/tag/wide-world-importers-v1.0.

This book covers every major topic area found on the exam, but it does not cover every exam question. Only the Microsoft exam team has access to the exam questions, and Microsoft regularly adds new questions to the exam, making it impossible to cover specific questions. You should consider this book a supplement to your relevant real-world experience and other study materials. If you encounter a topic in this book that you do not feel completely comfortable with, use the “Need more review?” links you’ll find in the text to find more information and take the time to research and study the topic. Great information is available on MSDN, TechNet, and in blogs and forums.

Organization of this book

This book is organized by the “Skills measured” list published for the exam. The “Skills measured” list is available for each exam on the Microsoft

Learning website: https://aka.ms/examlist. Each chapter in this book corresponds to a major topic area in the list, and the technical tasks in each topic area determine a chapter’s organization. If an exam covers six major topic areas, for example, the book will contain six chapters.

Microsoft certifications

Microsoft certifications distinguish you by proving your command of a broad set of skills and experience with current Microsoft products and technologies. The exams and corresponding certifications are developed to validate your mastery of critical competencies as you design and develop, or implement and support, solutions with Microsoft products and technologies both onpremises and in the cloud. Certification brings a variety of benefits to the individual and to employers and organizations.

More Info All Microsoft certifications

For information about Microsoft certifications, including a full list of available certifications, go to https://www.microsoft.com/learning.

Acknowledgments

Victor Isakov I would like to dedicate this book to Christopher, Isabelle, Marcus and Sofia. With your love and “infinite patience” I am the luckiest guy on this planet! It would be remiss of me not to also thank Trina MacDonald and Troy Mott for their “infinite patience” in helping me complete this “impossible task.”

Microsoft Virtual Academy

Build your knowledge of Microsoft technologies with free expert-led online training from Microsoft Virtual Academy (MVA). MVA offers a comprehensive library of videos, live events, and more to help you learn the latest technologies and prepare for certification exams. You’ll find what you need here: https://www.microsoftvirtualacademy.com

Quick access to online references

Throughout this book are addresses to webpages that the author has recommended you visit for more information. Some of these addresses (also known as URLs) can be painstaking to type into a web browser, so we’ve compiled all of them into a single list that readers of the print edition can refer to while they read.

Download the list at https://aka.ms/exam764administersql/downloads.

The URLs are organized by chapter and heading. Every time you come across a URL in the book, find the hyperlink in the list to go directly to the webpage.

Errata, updates, & book support

We’ve made every effort to ensure the accuracy of this book and its companion content. You can access updates to this book in the form of a list of submitted errata and their related corrections at:

https://aka.ms/exam764administersql/errata

If you discover an error that is not already listed, please submit it to us at the same page.

If you need additional support, email Microsoft Press Book Support at mspinput@microsoft.com.

Please note that product support for Microsoft software and hardware is not offered through the previous addresses. For help with Microsoft software or hardware, go to https://support.microsoft.com.

We want to hear from you

At Microsoft Press, your satisfaction is our top priority, and your feedback our most valuable asset. Please tell us what you think of this book at:

https://aka.ms/tellpress

We know you’re busy, so we’ve kept it short with just a few questions. Your answers go directly to the editors at Microsoft Press. (No personal information will be requested.) Thanks in advance for your input!

Stay in touch

Let’s keep the conversation going! We’re on Twitter: http://twitter.com/MicrosoftPress.

Important: How to use this book to study for the exam

Certification exams validate your on-the-job experience and product knowledge. To gauge your readiness to take an exam, use this Exam Ref to help you check your understanding of the skills tested by the exam. Determine the topics you know well and the areas in which you need more experience. To help you refresh your skills in specific areas, we have also provided “Need more review?” pointers, which direct you to more in-depth information outside the book.

The Exam Ref is not a substitute for hands-on experience. This book is not designed to teach you new skills.

We recommend that you round out your exam preparation by using a combination of available study materials and courses. Learn more about available classroom training at https://www.microsoft.com/learning. Microsoft Official Practice Tests are available for many exams at https://aka.ms/practicetests. You can also find free online courses and live events from Microsoft Virtual Academy at https://www.microsoftvirtualacademy.com.

This book is organized by the “Skills measured” list published for the exam. The “Skills measured” list for each exam is available on the Microsoft Learning website: https://aka.ms/examlist.

Note that this Exam Ref is based on publicly available information and the author’s experience. To safeguard the integrity of the exam, authors do not have access to the exam questions.

Chapter 1. Configure data access and auditing

Important Have you read page xiii?

It contains valuable information regarding the skills you need to pass the exam.

An organization’s data is one of its most important assets, and in the twentyfirst century securing your data is paramount. In this chapter we will exam the skills required to protect sensitive data through encryption, to control data access, and importantly to audit data access. In a lot of sectors there are common compliances and governance requirements, and SQL Server has technology and tools to help you achieve any such compliance.

Data loss comes in many forms, including hardware failure, database corruption, malicious activity, and user error, so you should develop a DRP to protect against all of these eventualities. It is common for organizations to have data governance requirements, requiring you to factor these into your data disaster strategy.

Skill 1.1 starts with the encryption of data within your SQL Server instance. We will examine how you can encrypt data at the column-level within the tables of your database, at the database level, and at the database backup level. Most data breaches within organizations are performed by employees, so it is important to configure the appropriate data access controls and audit potential unauthorized data access. In Skill 1.2 we turn our attention to how you control data access within your SQL Server instance. SQL Server logins, database users, server roles, database roles, and object permissions are covered because they might be in the exam. We will also focus on row-level security and dynamic data masking. Finally, in Skill 1.3 we cover how to configure auditing at the server and database level within SQL Server.

Pay attention to the new security features in SQL Server 2016, which are Always Encrypted, row-level security, and dynamic data masking. These new technologies make great candidates for exam questions, but of course you

must be prepared for many other technologies as well.

Skills in this chapter:

Configure encryption

Configure data access and permissions

Configure auditing

Skill 1.1: Configure encryption

Let’s start this section with how to configure encryption in SQL Server. We will examine how you can encrypt both data at rest and data in flight. Each encryption technology will have its own strengths, weaknesses and administrative complexity. Some encryption technology will restrict the types of operations that you can perform on your data.

Let’s begin by examining how you can encrypt columns within tables using column-level encryption and the new Always Encrypted capability. We will then move to the database level and look at how to encrypt the entire database and the database backups. Finally, we will cover how to configure encryption for connections, and how to troubleshoot encryption.

When configuring encryption it is critical to choose the order of which algorithms, certificates, and keys to operate. It is important to understand what the different encryption technologies encrypt, what they protect against, and how to configure them. The exam may require you to choose the appropriate encryption mechanism, list the proper business requirements, and describe the technical constraints.

This section covers how to:

Implement column-level encryption

Implement Always Encrypted

Configure transparent data encryption

Implement backup encryption

Configure encryption for connections

Troubleshoot encryption errors

Implement column-level encryption

The ability to encrypt data at the column level is a critical capability in any modern database engine. Column-level encryption has been supported since SQL Server 2005. Although this capability has seen improvements through releases of SQL Server, its core architecture has remained the same. Consequently, I would not expect many questions on column-level encryption in the exam because it represents older technology.

To understand and implement encryption in SQL Server you need to understand its encryption hierarchy and key management architecture. Layers of encryption are protected by preceding layers of encryption that can use asymmetric keys, certificates, and symmetric keys.

Extensible Key Management SQL Server EKM enables the encryption keys that protect the database files to be stored outside of the SQL Server environment such as a smartcard, a USB device, and the EKM module of Hardware Security Module (HSM). It also helps secure the SQL Server instance from database administrators because they will not necessarily have access to the external EKM/HSM module.

Service Master Key The Service Master Key (SMK) is the root of the database engine’s encryption hierarchy and is generated automatically the first time it is needed to encrypt another key. By default, the SMK is encrypted using the Windows data protection API (DPAPI) at the operating system level, which uses the local machine key. The SMK can only be opened by the Windows service account that created it, or by a principal that knows the service account name and its password.

Database Master Key The Database Master Key (DMK) is a symmetric key used to protect the private keys of certificates and asymmetric keys that are present in the database. When created it is encrypted using AES 256 and a password you provide. Query the [sys].[symmetric keys] catalog view to get information about the DMK.

Asymmetric Key An asymmetric key consists of a private and corresponding public key. Asymmetric encryption is computationally more expensive, but more secure than symmetric encryption. You can use an asymmetric key to encrypt a symmetric key within a database.

Symmetric Key A symmetric key is a single key that uses encryption. Symmetric encryption is generally used over asymmetric encryption because it is faster and less computationally expensive.

Certificate Certificates are a digitally signed security object that contain a public (and optionally a private) key for SQL Server, which can generate certificates. You can also use externally generated certificates, and just like with asymmetric keys, certificates can be used in asymmetric encryption.

Figure 1-1 shows SQL Server’s encryption hierarchy. Note that there are multiple ways to protect the encrypted data within the database.

FIGURE 1-1 SQL Server encryption hierarchy

When implementing column-level encryption, consider the following:

Encrypted data cannot be compressed, but compressed data can be encrypted.

When using compression, you should compress data before encrypting it for optimal results.

Stronger encryption algorithms consume more processor resources.

Starting with SQL Server 2016 the database engine can take advantage of hardware acceleration, using Intel AES-NI, when performing encryption/decryption tasks.

Starting with SQL Server 2016 the only algorithms that are supported with database compatibility 130 or above are AES-128, AES 192, and AES 256.

Older encryption algorithms, including DES, Triple DES, TRIPLE DES 3KEY, RC2, RC4, 128-bit RC4, and DESX are only supported under a database compatibility level of 120 or lower. You should not use these older, unsupported encryption algorithms because they are fundamentally less secure.

If you are encrypting a lot of data it is recommended that you encrypt the data using a symmetric key, and then encrypt the symmetric key with an asymmetric key.

For all intents and purposes, once you encrypt a column, indexes on that column typically become useless for searching. Consider removing the indexes. In some cases you can add a helper column to the table, such as in the example of the last 4 digits of a credit card.

The database administrator generally still has complete control over the SQL Server environment and consequently the ability to potentially view the encrypted data. In the next section of this chapter we will examine Always Encrypted and how this can be used to protect unauthorized access from the database administrator.

Perform the following tasks to encrypt data:

1. Create DMK

2. Create a certificate that will be protected by the DMK

3. Create SMK using the certificate that will be used by column encryption

4. Encrypt the column using the SMK

It’s important to appreciate that these high-level tasks only represent one technique for implementing column level encryption. As you saw in Figure 1-1 there are multiple encryption paths that you can deploy, that can use a myriad of encryption functions.

Need more Review? Encryption system functions

SQL Server supports a number of different system functions that support encryption, decryption, digital signing, and validation of digital signatures. To familiarize yourself with these functions for the function visit https://docs.microsoft.com/en-us/sql/tsql/functions/cryptographic-functions-transact-sql.

Listing 1-1 starts with a simple example where you can encrypt data using a symmetric key protected by a password. Note that the best practice of backing up the keys and certificates has been excluded. Pay attention to what our “clever” CTO does.

LISTING 1-1 Implementing column-level encryption using a password

Click here to view code image

USE tempdb; GO

-- Create sample table

CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, EmployeeName VARCHAR(300), Position VARCHAR(100), Salary VARBINARY(128) ); GO

-- Create SMK

CREATE SYMMETRIC KEY SMK Emp WITH ALGORITHM = AES 256 ENCRYPTION BY PASSWORD = 'Pa$$w0rd'; GO

-- Open SMK

OPEN SYMMETRIC KEY SMK Emp DECRYPTION BY PASSWORD =

'Pa$$w0rd'; GO

-- Verify open keys

SELECT * FROM sys.openkeys; GO

-- Insert data

INSERT Employees VALUES (1, 'Marcus', 'CTO', ENCRYPTBYKEY(KEY GUID('SMK Emp'), '$100000'));

INSERT Employees VALUES (2, 'Christopher', 'CIO', ENCRYPTBYKEY(KEY GUID('SMK Emp'), '$200000'));

INSERT Employees VALUES (3, 'Isabelle', 'CEO', ENCRYPTBYKEY(KEY GUID('SMK Emp'), '$300000'));

GO

-- Query table with encrypted values

SELECT * FROM Employees; GO

-- Query table with decrypted values

SELECT * , CONVERT(VARCHAR, DECRYPTBYKEY(Salary)) AS DecryptedSalary FROM Employees; GO

-- Close SMK

CLOSE SYMMETRIC KEY SMK Emp

GO

-- Query table with decrypted values after key SMK is closed

SELECT * , CONVERT(VARCHAR, DECRYPTBYKEY(Salary)) AS DecryptedSalary FROM Employees; GO

-- Clever CTO updates their salary to match CEO's salary

UPDATE Employees

SET Salary = (SELECT Salary FROM Employees WHERE Position = 'CEO')

WHERE EmployeeName = 'Marcus'; GO

-- Open SMK and query table with decrypted values

OPEN SYMMETRIC KEY SMK Emp DECRYPTION BY PASSWORD = 'Pa$$w0rd';

SELECT * , CONVERT(VARCHAR, DECRYPTBYKEY(Salary)) AS DecryptedSalary FROM Employees;

GO -- Cleanup

DROP TABLE Employees;

DROP SYMMETRIC KEY SMK Emp; GO

As you can see, the CTO is able to substitute their salary with the CIO’s salary, knowing full well that it is higher than his. There is no need to decrypt and re-encrypt the actual salary. This highlights the importance of understanding what various encryption and security techniques protect against, and how they can be potentially overcome. It also highlights how you should also implement other techniques, which we’ll look at in later sections in this chapter, such as security and the use of auditing to secure your data.

In this instance the ciphertext was created with no integrity checks that could help in the whole-value substitution of the encrypted value. A number of the SQL Server encryption functions support an authenticator parameter, which helps by adding contextual information to the plaintext before encrypting it. Upon adding an authenticator, the same value must be used during decryption that was used with encryption. If it is different, the decryption will fail. Microsoft recommends using a column that contains a unique, immutable value, such as the primary key, as the authenticator. Be aware that if the authenticator value changes, you might lose access to the data.

Need more Review? Encryption authenticators

For more information on authenticators SQL Server supports a number of different system functions that support encryption, decryption, digital signing and validation of digital signatures. To familiarize yourself with these functions visit https://technet.microsoft.com/enus/library/ms365192(v=sql.105).aspx.

A major disadvantage of encrypting data using a symmetric key protected by a password is that the password needs to be embedded somewhere, which represents a security risk. Consequently, using certificates is generally the preferred technique. Listing 1-2 shows an example of how column-level encryption can be implemented using a certificate. Note that the best practice

of backing up the keys and certificates has been excluded.

LISTING 1-2 Implementing column-level encryption using a certificate

Click here to view code image

USE WideWorldImporters; GO

-- Create database master key

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'GoodLuckWithExam!'

-- Create certificate

CREATE CERTIFICATE Cert BAN WITH SUBJECT = 'Bank Account Number'; GO

-- Create SMK

CREATE SYMMETRIC KEY Key BAN WITH ALGORITHM = AES 256

ENCRYPTION BY CERTIFICATE Cert BAN; GO

-- Create a column to store encrypted data

ALTER TABLE Purchasing.Suppliers

ADD EncryptedBankAccountNumber varbinary(128); GO

-- Open the SMK to encrypt data

OPEN SYMMETRIC KEY Key BAN

DECRYPTION BY CERTIFICATE Cert BAN; GO

-- Encrypt Bank Account Number UPDATE Purchasing.Suppliers

SET EncryptedBankAccountNumber =

EncryptByKey(Key GUID('Key BAN'), BankAccountNumber); GO

-- Close SMK

CLOSE SYMMETRIC KEY Key BAN GO /*

Verify encryption was successful */

-- Query 1: Check encryption has worked SELECT TOP 5 SupplierID, SupplierName, BankAccountNumber, EncryptedBankAccountNumber, CONVERT(NVARCHAR(50),

DecryptByKey(EncryptedBankAccountNumber)) AS DecryptedBankAccountNumber

FROM Purchasing.Suppliers

GO

-- Query 2: Open the SMK

OPEN SYMMETRIC KEY Key BAN

DECRYPTION BY CERTIFICATE Cert BAN; GO

-- Query with decryption function

SELECT NationalIDNumber, EncryptedNationalIDNumber AS 'Encrypted ID Number', CONVERT(nvarchar, DecryptByKey(EncryptedNationalIDNumber)) AS 'Decrypted ID Number' FROM HumanResources.Employee; -- Results can be seen in Figure 1-3

GO

-- Close SMK

CLOSE SYMMETRIC KEY Key BAN; GO

Figure 1-2 shows the result set of Query 1 in Listing 1-2 where we attempted to decrypt the encrypted column without opening the symmetric key. Note how SQL Server Management Studio returns NULLs for the encrypted column.

FIGURE 1-2 Unsuccessful decryption

Figure 1-3 shows the result set of query 2 in Listing 1-2 where the symmetric key has been opened before the encrypted column has been queried. In this case you can see that the encrypted data has been successfully decrypted.

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.