sql server 2008 compliance guidancedownload.microsoft.com/.../reachingcompliance_rus.… · web...

128
Руководство по обеспечению соответствия требованиям в SQL Server 2008 Техническая статья по SQL Server Авторы: Джей-Си Кэннон (JC Cannon), Денни Ли (Denny Lee) Соавторы: Энди Робертс (Andy Roberts), Айяд Шаммут (Ayad Shammout) Технические редакторы: Дэн Джонс (Dan Jones), Крэйг Гик (Craig Gick), Джек Ричинс (Jack Richins), Рауль Гарсия (Raul Garcia), Девендра Тивари (Devendra Tiwari), Стивен Готт (Steven Gott), Эл Комо (Al Comeau), Лара Руббелке (Lara Rubbelke) Публикация: ноябрь 2008 г. Область применения: SQL Server 2008 Сводка. В этом документе представлены общие сведения о подходах к обеспечению соответствия требованиям при управлении базами данных SQL Server. В нем описаны компоненты SQL Server 2008, имеющие отношение к обеспечению соответствия требованиям и их применению к средствам управления ИТ. В документ включены советы и сценарии, помогающие быстро начать разработку решений для обеспечения соответствия требованиям. Примечание. Можно загрузить файлы с примерами для этого документа. 1

Upload: others

Post on 22-May-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Руководство по обеспечению соответствия требованиям в SQL Server 2008Техническая статья по SQL Server

Авторы: Джей-Си Кэннон (JC Cannon), Денни Ли (Denny Lee)

Соавторы: Энди Робертс (Andy Roberts), Айяд Шаммут (Ayad Shammout)

Технические редакторы: Дэн Джонс (Dan Jones), Крэйг Гик (Craig Gick), Джек Ричинс (Jack Richins), Рауль Гарсия (Raul Garcia), Девендра Тивари (Devendra Tiwari), Стивен Готт (Steven Gott), Эл Комо (Al Comeau), Лара Руббелке (Lara Rubbelke)

Публикация: ноябрь 2008 г.

Область применения: SQL Server 2008

Сводка. В этом документе представлены общие сведения о подходах к обеспечению соответствия требованиям при управлении базами данных SQL Server. В нем описаны компоненты SQL Server 2008, имеющие отношение к обеспечению соответствия требованиям и их применению к средствам управления ИТ. В документ включены советы и сценарии, помогающие быстро начать разработку решений для обеспечения соответствия требованиям.

Примечание. Можно загрузить файлы с примерами для этого документа.

1

Page 2: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Авторские праваСведения, содержащиеся в данном документе, отражают текущую позицию корпорации Майкрософт по рассматриваемым вопросам на момент публикации документа. Поскольку корпорации Майкрософт приходится реагировать на изменение рыночных условий, текст документа не может рассматриваться как обязательство со стороны корпорации Майкрософт. Корпорация Майкрософт не гарантирует достоверности предоставленной информации после даты публикации.

Данный технический документ предоставляется исключительно в ознакомительных целях. КОРПОРАЦИЯ МАЙКРОСОФТ НЕ ДАЕТ В НЕМ НИКАКИХ ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ.

Ответственность за соблюдение всех авторских прав целиком и полностью несет пользователь. Без ограничения авторских прав ни одна из частей этого документа не может быть воспроизведена, сохранена или использована в системах поиска либо передана в любой форме, любыми способами (электронными, механическими, в виде фотокопии, в виде записи или любыми другими) и в любых целях без письменного разрешения корпорации Майкрософт.

Корпорация Майкрософт может иметь патенты, патентные заявки, охраняемые товарные знаки, авторские или другие права на интеллектуальную собственность применительно к содержимому этого документа. Без письменного разрешения корпорации Майкрософт данный документ не дает лицензии на эти патенты, товарные знаки, авторские права и другую интеллектуальную собственность.

За исключением специально отмеченных случаев описанные здесь компании, организации, товары, имена доменов, адреса электронной почты, эмблемы, люди, места и события являются вымышленными; любые ассоциации с какими-либо реальными компаниями, организациями, товарами, именами доменов, адресами электронной почты, эмблемами, лицами, местами и событиями непреднамеренны и случайны.

© Корпорация Майкрософт (Microsoft Corporation), 2008. Все права защищены.

Microsoft, Active Directory, ActiveX, BitLocker, Excel, Internet Explorer, PivotTable, PowerShell, SQL Server, Vista, Visual Basic, Visual Studio, Windows, Windows Server и Windows Vista являются товарными знаками группы компаний Майкрософт.

Все прочие товарные знаки являются собственностью их владельцев.

2

Page 3: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

3

Page 4: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

СодержаниеIntroduction................................................................................................................................7

How to Use This Document.......................................................................................................7

Document Focus....................................................................................................................7

Document Prerequisites.........................................................................................................7

Understanding Compliance.......................................................................................................7

Deconstructing GRC..............................................................................................................8

Risk Management..............................................................................................................8

Governance........................................................................................................................9

Compliance.........................................................................................................................9

A GRC Example...................................................................................................................10

Mitigating Controls...............................................................................................................11

Key Performance Indicators and Key Risk Indicators..........................................................11

Mapping Regulations to a Core Set of IT Controls..............................................................11

Implementing IT Controls with SQL Server 2008....................................................................13

Securing the Platform..............................................................................................................13

Securing SQL Server 2008..............................................................................................14

Managing SQL Server 2008 Surface Area Configuration................................................14

Controlling Identity and Separation of Duties..........................................................................15

Using Windows Authentication............................................................................................16

Creating Logins....................................................................................................................17

Assigning Users to Server Roles.........................................................................................18

Granting Database Access..................................................................................................19

Assigning Users to Database Roles....................................................................................20

Managing Permissions.........................................................................................................21

Server Role Permissions..................................................................................................21

Database Permissions.....................................................................................................22

Column-Level Permissions...............................................................................................23

Separation of Duties................................................................................................................25

Limiting Use of sysadmin.....................................................................................................25

Disabling the sa Account..................................................................................................25

4

Page 5: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Using Signed Procedures to Act as sysadmin (Disabling All sysadmin Accounts)..........25

sysadmin Accounts Defined During Setup...........................................................................26

Assignment of sysadmin During SQL Server 2008 Setup................................................26

Assignment of Service SIDs in Windows Vista and Windows Server 2008.....................28

Use of BUILTIN\Administrators Group.............................................................................28

Identity Management with Multitiered Applications..............................................................28

Encrypting Database Data.......................................................................................................29

SQL Server Database Encryption........................................................................................29

Selecting an Encryption Algorithm.......................................................................................29

Using Transparent Data Encryption.....................................................................................29

Backing Up the Certificate Private Key............................................................................30

Rotating Certificates vs. Rotating Keys............................................................................30

Monitoring Key Access........................................................................................................31

Monitoring Database Encryption Flag..................................................................................32

Addressing Specific Scenarios............................................................................................32

Protecting Against a Stolen Computer.............................................................................32

Preventing sysadmin and dbo Access.............................................................................32

Protecting a Column in a Database Table........................................................................32

Auditing Sensitive Operations.................................................................................................33

Collecting Logs....................................................................................................................34

Transferring Logs.................................................................................................................34

Using Scripts and Tools to Manage Auditing.......................................................................34

Auditing Specific Users and Tables.....................................................................................35

Auditing Specific Users....................................................................................................35

Auditing Specific Tables...................................................................................................36

Tracking sysadmin and db_owner Access.......................................................................36

Centralizing Logs.................................................................................................................36

Creating Reports from Log Files..........................................................................................37

Overview – Server Actions...............................................................................................37

Server Action Trend Analysis...........................................................................................38

Drilling Through to the Server Action Details...................................................................38

Overview – Database Actions..........................................................................................39

Drilling Through to the Database Actions.........................................................................39

5

Page 6: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Overview – DDL Actions..................................................................................................40

Drilling Through to the DDL Actions.................................................................................40

Overview – DML Actions..................................................................................................42

Drilling Through to the DML Actions.................................................................................42

Using Policy-Based Management to Define, Deploy, and Validate Policy..............................43

Policy-Based Management Structure..................................................................................43

Policy-Based Management Example...................................................................................44

Monitoring Policy-Based Management Policies...................................................................44

Using Policy-Based Management to Address Compliance..................................................44

Create a Plan...................................................................................................................44

Based on the Plan, Which Set of Policies Do You Want to Create?................................46

Determining Execution Mode for Your Policies................................................................46

Using Policy-Based Management to Implement KPIs and KRIs......................................48

Using Policy-Based Management to Validate Auditing Configuration..............................49

Using Policy-Based Management to Validate Encryption Configuration..........................49

Deploying Policies............................................................................................................50

Creating Policy-Based Management Reports..................................................................51

Helpful Scripts and Tips...........................................................................................................55

Programming Interfaces to SQL Server...............................................................................55

SMO.................................................................................................................................55

Transact-SQL...................................................................................................................55

Windows PowerShell........................................................................................................55

VBScript...............................................................................................................................56

Windows Data Access Components....................................................................................56

Ensuring Security Settings (Server Security Policy.xml).........................................................57

Managing Separation of Duties (SOD Policy.xml)...................................................................59

Using Scripts in Conditions..................................................................................................60

Disabling All sysadmin Accounts (ManageSA.sql)..............................................................61

Validating the sa Account (ValidateSA.sql)..........................................................................62

Validating sysadmin Role Membership (ValidateSysadmins.sql)........................................62

Enforcing Separation of Roles (SOD Policy.xml).................................................................63

Monitoring Server Roles (ValidateServerRoles.sql).........................................................63

Listing Users in Multiple Roles (ValidateServerRoles.sql)...............................................64

6

Page 7: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Monitoring Database Roles (ValidateDatabaseRoles.sql)...............................................66

Managing Encryption Keys......................................................................................................67

Monitoring Access to Encryption Keys (AuditCryptoActions.sql).........................................67

Viewing Certificates and Keys (ViewKeys.sql).....................................................................67

Rotating Certificates (RotateCerts.sql)................................................................................69

Backing Up the Certificate Private Key (BackupCerts.sql)..................................................70

Ensuring Certificate Rotation and Backup (CertRotationPolicy.xml)...................................71

Managing Auditing...................................................................................................................71

Transferring SQL Server Audit Logs to a Table (StoreAuditLogs.sql).................................71

Using SSIS to Move Logs to a Database Table (LoadLogsPackage.dtsx)..........................75

Accessing SQL Server Audit Events by Using Excel (AuditReport.xlsx).............................78

Getting an IP Address from an Audit Log............................................................................80

Audit Project.........................................................................................................................81

Managing Policy-Based Management Policies.......................................................................85

Creating a Policy by Using PowerShell................................................................................86

Deploying Policy-Based Management Policies by Using PowerShell (DeployPBMPolicies.ps1)....................................................................................................86

Transferring Policy Health Checks into a Database Table..................................................87

Conclusion...............................................................................................................................91

7

Page 8: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

ВведениеВ любой стране мира организациям приходится обеспечивать соответствие требованиям различных нормативов. Кроме того, им приходится совершенствовать управление своими ИТ-системами для поддержания необходимого уровня безопасности и эффективности их эксплуатации. Клиенты часто обращаются к Майкрософт за советами и технологиями, которые могли бы помочь организациям в этом. Технический документ «Руководство по обеспечению соответствия требованиям в SQL Server 2008» специально предназначен в помощь компаниям и лицам, которые хотели бы научиться использовать программные компоненты баз данных Microsoft® SQL Server® 2008 для решения своих задач по обеспечению соответствия требованиям. Этот документ служит дополнением к пакету средств разработки программного обеспечения (SDK) по обеспечению соответствия требованиям SQL Server 2008, который содержит образцы кода и основные сведения о компонентах SQL Server 2008 по обеспечению соответствия требованиям и их применению при разработке решений.

Какпользоваться этим документомЭтот документ содержит руководство по обеспечению соответствия требованиям на различных уровнях. В его первой части описаны основные понятия о соответствии требованиям, где для сведения рисков к минимуму могут использоваться средства управления ИТ, а также технологии, которые могут быть для этого применены. Вторая часть посвящена конкретным сценариям обеспечения соответствия требованиям, в частности защите платформы и данных. Третья часть документа содержит образцы кода, примеры и советы, которые могут быть использованы для повышения темпов создания специализированных решений на основе SQL Server 2008. При создании средств управления ИТ также может быть использован сам по себе пакет SDK. В этом вам поможет поставляемый вместе с ним файл Readme.

Основные вопросыОсновная цель этого документа — дать общие навыки применения SQL Server 2008 для целей обеспечения соответствия требованиям. Он также содержит руководство верхнего уровня от Solution Accelerator Team, подразделения Майкрософт, и руководство по обеспечению безопасности операционной системы Windows Server®.

Предварительные требованияДля понимания основных понятий, представленных в этом документе, требуется знание основных сведений о работе SQL Server. Практическая работа с пакетом SDK поможет получить основные сведения о компонентах SQL Server 2008, связанных с обеспечением соответствия требованиям.

8

Page 9: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Основные сведения о соответствии требованиямСоответствие требованиям — это задача, которую решают предприятия любых размеров. Основную нагрузку по обеспечению соответствия требованиям создают разнообразные нормативы, такие как Sarbanes-Oxley и PCI-DSS. Но даже тем компаниям, которым не требуется сертификация по каким-либо нормативам, все равно приходится заботиться о соответствии собственным организационным политикам. Часто с проблемой сталкиваются компании, начинающие работу над программой обеспечения соответствия требованиям. Как правило, они не знают, с чего начать работу и как автоматизировать программу с использованием различных технологий, в частности SQL Server.

Обеспечение соответствия требованиям — это последний из трех этапов процесса под названием GRC (governance, risk management, compliance — руководство, управление рисками, соответствие требованиям). Организации, начинающей разработку программы GRC, лучше обратиться за помощью к консультанту по обеспечению соответствия требованиям. В этом может оказаться полезным отчет по компаниям, предоставляющим консалтинговые услуги по GRC, подготовленный компанией Forrester, которая занимается отраслевым мониторингом GRC. В следующем разделе обсуждается понятие GRC и способы интеграции SQL Server в программу GRC.

GRCСущность программыПрограмма GRC помогает компаниям выявить риски, снизить связанные с ними угрозы и убедиться в том, что это сокращение сохранится в долгосрочной перспективе. На иллюстрации Error: Reference source not found приведены общие сведения о каждом из этих положений.

Рис. 1. Сущность программы GRC

9

Page 10: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

AssessmentPrioritizationAction plan

MonitoringValidationRemediation

PoliciesTraining Practices

Управление рискамиУправление рисками — это программа, направленная на снижение или устранение рисков. Ее выполнение начинается с выявления источников и оценки рисков в каждой из областей деятельности организации. Каждый отдел — безопасности, эксплуатации, продаж и разработок — может выполнить собственную оценку рисков. Для начала компания должна выполнить оценку своих рисков с участием аудитора соответствия требованиям. После того как все риски выявлены, им необходимо присвоить приоритеты и исходя из этого разработать план действий. В плане должен быть определен метод устранения каждого из рисков — пропустить его, снизить или устранить?

Пути решения для риска, связанного с хранением данных кредитных карт Пропустить — не заниматься усилением защиты данных о кредитных картах. Снизить — улучшить защиту данных о кредитных картах. Устранить — не хранить данные о кредитных картах.

Рискам, которые предполагается снизить, должен быть назначен приоритет, и для снижения каждого из этих рисков должен быть разработан план. Поскольку каждый отдел выявляет свои риски и назначает им приоритеты, необходимо убедиться в том, чтобы они не противоречили рискам всей организации в целом. Приоритеты отдела не должны противоречить приоритетам компании.

10

Page 11: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

РуководствоРуководство представляет действия, предпринимаемые для снижения рисков, выявленных на этапе оценки. На этом этапе применяются политики, средства управления ИТ, рекомендации системы и учебные программы, ведущие к снижению рисков. Средства снижения рисков, обсуждаемые ниже, могут использоваться в тех случаях, когда нельзя полностью избавиться от рисков или применять жесткие правила. Например, SQL Server не может запретить просматривать конфиденциальные данные пользователю sysadmin. Однако саму учетную запись sysadmin можно либо отключить, либо отслеживать любой выполняемый ею доступ, чтобы запретить несанкционированный доступ к конфиденциальным данным.

Способы применения руководства к защищаемым конфиденциальным данным Создание политик, которые описывают надлежащую обработку конфиденциальных

данных. Обучение сотрудников правилам работы с данными. Применение политик к системам, в которых хранятся конфиденциальные данные. Мониторинг и ведение журнала выполнения политик при обработке

конфиденциальных данных.

Соответствие требованиямСоответствие требованиям — это проверка снижения выявленных рисков. Следующие примеры показывают, как можно проверить риски. Во-первых, для каждого ли выявленного риска имеется политика по его снижению или устранению? Во-вторых, поставлены ли соответствующие сотрудники в известность об этих политиках? В-третьих, развернуты ли эти политики на все процессы, программы и средства управления ИТ? В-четвертых, отслеживаются ли политики на соответствие требованиям и насколько быстро устраняются вновь обнаруженные дефекты защиты? Чтобы достичь истинного соответствия требованиям, каждый этап должен быть проверен аудитором. Здесь могут помочь отчеты аудита, журналы событий, видеозаписи и история версий.

Способы проверки соответствия требованиям Показать, что разработаны политики для устранения выявленных рисков. Показать, что эти политики развернуты в нужных местах. Доказать, что политики разработаны и выполняются в течение периода их

применения.

Обеспечение соответствия требованиям организации и нормативам обычно выполняется группой внутреннего аудита и профессиональным аудитором. Подготовьте системы к проверке соответствия требованиям, которую будут проводить аудиторы. Централизация систем аудита способствует повышению эффективности аудита соответствия. При этом снижается стоимость аудита и сводится к минимуму нарушение текущего обслуживания.

11

Page 12: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

GRCПримерПользуясь рекомендациями GRC из предыдущего раздела, попробуем провести оценку необходимости построения защиты, как показано на иллюстрации Error: Reference source not found.

Рис. 2. Пример GRC

Loss from theft, vandalism and injury to personnel

Review entrance and guard logs, tapes and news reports

Locked door, guard, camera, badges and policies

Управление рискамиПроведение оценки рисков для зданий позволяет выработать политику безопасности, которая позволит снизить риски потерь от хищения компьютерного и офисного оборудования, личных вещей и интеллектуальной собственности. Для сотрудников также существует риск нападения или ограбления. Само по себе здание может также пострадать от вандализма. Каждый из этих рисков может отрицательно отразиться на итогах работы предприятия, если выразить их в материальных затратах.

РуководствоРезультатом оценки является определенный набор политик и приоритетов их реализации. Создаются политики для доступа в здание и защиты входных путей. Проводится обучение сотрудников этим политикам. Двери защищаются электронными замками, которые открываются только беджами сотрудников. Сотрудникам выдаются беджи, ограничивающие их доступ внутри здания в соответствии с соображениями целесообразности. Чтобы обеспечить принудительное применение политик в уязвимых местах, там размещаются камеры и посты охраны.

Соответствие требованиямЧтобы аудитор мог проверить соответствие требованиям корпоративных политик доступа, должна существовать возможность извлечения записей из журналов регистрации, показывающих, что в них правильно производится сбор данных, а

12

Page 13: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

сотрудники, указанные в журнале, имеют законное право доступа в здание. Должна существовать возможность просмотра записей с камер наблюдения, чтобы убедиться в том, что сотрудники соблюдают политики доступа в здание, а посторонние лица не могут в него проникнуть. Кроме того, аудитор может опросить охрану и ознакомиться с последними сводками новостей, чтобы проверить, что в здании не было никаких происшествий.

Средства сокращениярисковСредства сокращения рисков, также называемые средствами компенсации, помогают снижать риски от средств управления, которые не могут быть в полной мере применены. В приведенном выше примере GRC камера наблюдения служит средством снижения рисков, позволяя отслеживать попытки проникновения в здание без беджа. Несмотря на то что электронный замок на двери открывается только с помощью беджа его владельца, это не остановит того, кто входит в дверь, когда она уже открыта.

Аудит часто используется в качестве средства сокращения рисков в компьютерных системах, позволяя отслеживать операции, которые невозможно заблокировать. Например, системные администраторы часто имеют доступ ко всем данным, хотя и не всегда авторизованы для ознакомления с этими данными. Наблюдение за действиями администраторов позволит определить, выполняются ли политики безопасности.

В SQL Server 2008 появились два компонента, которые могут быть использованы при разработке средств снижения рисков. Подсистема аудита SQL Server позволяет наблюдать за конфиденциальными операциями и привилегированными учетными записями, такими как sa. Управление на основе политик помогает следить за тем, чтобы важные параметры конфигурации в любой момент времени содержали соответствующие значения. В тех случаях, когда какие-либо из операций, учетных записей и параметров конфигурации невозможно заблокировать, создаваемые ими риски можно снизить с помощью этих двух компонентов.

Ключевыеиндикаторыпроизводительности и ключевые индикаторырисков

Ключевые индикаторы производительности (KPI) — это параметры или замеры, которые показывают, работает ли компания, отдел или система в соответствии с вашими ожиданиями. Как правило, значения и диапазоны для KPI задаются ответственными лицами компании. Некоторые средства управления ИТ также могут выступать в качестве KPI. Например, производительность обработки запросов к базам данных, загрузка ЦП, объем доступной памяти и количество свободных соединений могут служить индикаторами работоспособности системы.

Ключевые индикаторы рисков (KRI) представляют собой параметры или значения, которые могут показывать потенциальные угрозы для компании, отдела или системы. Как правило, значения и диапазоны для KRI задаются лицами, отвечающими за технические вопросы. Средства управления ИТ часто используются для реализации KRI. В качестве примеров KRI можно привести регулярность применения исправлений

13

Page 14: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

безопасности или защиты данных шифрованием, количество пользователей, имеющих роль администратора, или частоту выполнения резервного копирования.

О том, как использовать управление на основе политик для реализации KPI и KRI, см. в разделе Использование управления на основе политик для реализации KPI и KRI далее в этом документе.

Сопоставление нормативов базовымнаборам средств управленияИТ

Определение политик обеспечения соответствия нормативам часто влечет за собой разработку средств управления ИТ для их реализации. Например, политика, применяемая для ограничения доступа к номерам кредитных карт, может потребовать реализации средств управления ИТ для строгой проверки подлинности, рекомендаций по выбору надежного пароля и использования шифрования. Некоторые из этих средств реализуются как бизнес-процессы, но многие требуют применения технологий.

14

Page 15: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

На иллюстрации Error: Reference source not found показаны примеры средств управления ИТ, которые могут потребоваться для обеспечения соответствия ряду нормативов, распространенных в США. Разработанное в Майкрософт Руководство по планированию соответствия требованиям ИТ содержит рекомендации по сопоставлению нормативов базовому набору средств управления ИТ и технологий Майкрософт, которые могут оказаться полезными при их создании.

Рис. 3. Закон Сарбейнса-Оксли (SOX) PCI: Отрасль платежных карт HIPAA: Закон о перемещении данных о страховании здоровья и ответственности за них GLBA: Закон Грэма - Лича - Блили

IT Control SOX

PCI

HIPA

A

GLB

A

ID Management

Separation of Duties

Encryption

Key Management

Auditing

Control Testing

Policy Management

В следующих разделах этого документа все указанные средства управления ИТ описаны подробно.

Значок Описание

Управление идентификаторами

Разграничение обязанностей

Шифрование

Управление ключами

Аудит

Управление на основе политик

15

Page 16: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

16

Page 17: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

SQL Реализация средств управленияИТ с помощьюServer 2008SQL Server 2008 содержит ряд компонентов, обеспечивающих возможность реализации средств управления ИТ, связанных с базами данных. Помимо этого, некоторые средства управления ИТ могут быть реализованы с помощью платформы, на которой установлен SQL Server. Группа обеспечения соответствия требованиям вашей компании должна определить средства управления ИТ, которые нужно реализовать, и выделить те из них, которые будут относиться к базе данных. В следующих разделах рассматриваются компоненты, которые могут быть использованы для реализации средств управления ИТ. В число рассматриваемых областей входит следующее.

Защита платформы В этом разделе описаны действия, которые нужно выполнить перед установкой программного обеспечения и настройкой базы данных. Эти действия помогут снизить риски, связанные с операционной системой и приложением базы данных.

Управление удостоверениями и разделение обязанностей В этом разделе приведены рекомендации по определению участников базы данных и разграничению обязанностей между ними.

Шифрование данных в базе данных В этом разделе рассматриваются компоненты SQL Server 2008 для шифрования данных. Раздел также включает обсуждение часто упускаемых вопросов, связанных с шифрованием.

Аудит конфиденциальных данных В этом разделе рассматривается новый компонент аудита SQL Server 2008 и его применение для централизованного сбора журналов и создания отчетов.

Использование управления на основе политик для определения, развертывания и проверки политикВ этих разделах рассматривается компонент SQL Server 2008 для управления на основе политик и его применение для управления несколькими базами данных с помощью единой политики.

Защита платформыПрежде чем применять политики или реализовывать средства управления ИТ с помощью SQL Server, убедитесь в том, что подготовлена защищенная база данных для установки SQL Server:

Используйте последнюю версию операционной системы с текущими пакетами обновлений.

Установите все последние исправления безопасности.

17

Page 18: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Установите ПО для защиты от вредоносных программ. Сведите к минимуму контактную зону операционной системы, доступную для атак.

o Ограничьте число запущенных служб.o Устанавливайте только то ПО, которое необходимо для поддержки роли

сервера.o Отключите ненужные порты.o Настройте брандмауэр.

Ограничьте число пользователей, имеющих доступ к серверу, и число их ролей.

Дополнительные сведения, в том числе директивные рекомендации об обеспечении безопасности Windows Server 2008, загрузите из раздела Руководство по безопасности Windows Server 2008.

SQL Server 2008Обеспечение безопасностиПосле защиты платформы, но перед применением политик и разработкой средств управления ИТ нужно установить и защитить SQL Server. Дополнительные сведения, включая рекомендации по защите SQL Server 2008, см. в техническом документе Обеспечение безопасности SQL Server.

SQL Server 2008Настройка контактной зоныНачиная с SQL Server 2008 средство настройки контактной зоны удалено. Функции этой программы по управлению работой SQL Server перенесены в компонент управления на основе политик и значительно расширены. На иллюстрации Error: Reference source not found показан экран аспектов настройки контактной области. Кроме того, имеются аспекты настройки контактной зоны для служб Analysis Services и Reporting Services. Дополнительные сведения о настройке контактной зоны см. в разделе Основные сведения о настройке контактной зоны.

Рис. 4. Аспект настройки контактной зоны управления на основе политик

18

Page 19: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

19

Page 20: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Функции управления компонентами связи в средстве настройки контактной зоны, показанные на рис. 4, находятся в диспетчере конфигураций SQL Server. Поле Error: Reference source not found представляет узлы диспетчера конфигурации SQL Server для настройки служб, сети и протоколов.

Рис. 5. Диспетчер конфигурации SQL Server

Управление конфигурацией SQL Server можно выполнять с помощью хранимой процедуры sp_configure. Она обеспечивает управление следующими параметрами.

Сжатие резервной копии. Включение стандарта Common Criteria. Включение среды CLR. Удаленный доступ. Соединения пользователей.

Управление удостоверениямии разделениеобязанностейПервый этап ограничения доступа к данным в базе данных — это определение круга лиц, имеющих к ним доступ. SQL Server 2008 поддерживает различные способы, позволяющие ограничивать как круг лиц, так и набор операций, доступных для выполнения пользователям базы данных. На иллюстрации Error: Reference source not found показано несколько уровней управления идентификаторами, реализованных в SQL Server 2008. Помимо этого, для пользователей могут предоставляться или запрещаться специальные разрешения. Прежде чем предоставлять пользователям

20

Page 21: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

доступ, подготовьте план, в котором укажите, кто будет иметь доступ к базе данных, на каком уровне и к каким операциям. Затем следуйте приведенным далее рекомендациям.

21

Page 22: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Используйте для входа в базу данных проверку подлинности Windows. Предоставляйте пользователям доступ к базам данных только по мере

необходимости. Предоставляйте пользователям необходимые разрешения и отзывайте их. Включите пользователей в роли, которые им необходимы для выполнения их

работы. С помощью управления на основе политик проверьте политики удостоверений.

Рис. 6. Развитие определения пользователя базы данных

BackupOperator

ApplicationAdmin

ApplicationAdmin

AuditorUser

Admin

Roles

P123#$?

WindowsИспользование проверки подлинностиУправление идентификаторами — самый важный этап защиты базы данных после проверки защищенности платформы. С одной стороны, он дает возможность определить каждое лицо, получающее доступ к базе данных.

Использование проверки подлинности Windows привязывает идентификатор SQL Server к учетной записи Active Directory®, обеспечивая строгость идентификации. Интеграция управления доступом со службой каталогов Active Directory (AD DS) дает SQL Server несколько преимуществ.

Согласованность удостоверений для всех серверов Централизованное применение политики паролей Централизованное блокирование учетных записей

Дополнительные сведения об обеспечении учетных записей см. в разделе Настройка компонента Database Engine — назначение учетных записей.

22

Page 23: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Проверку подлинности Windows можно включить на странице Безопасность в диалоговом окне Свойства сервера среды SQL Server Management Studio, как показано на иллюстрации Error: Reference source not found.

Рис. 7. Свойства безопасности сервера

Управление на основе политик может быть использовано для создания политики, обеспечивающей наличие и неизменность параметров безопасности. Создать политику для этого параметра можно с помощью аспекта управления на основе политик свойствами безопасности сервера. Дополнительные сведения о проверке параметров с помощью управления на основе политик см. в разделе Использование управления на основе политик для определения, развертывания и проверки политик.

Создание имен входаДля доступа к базе данных пользователю сначала нужно назначить имя входа. Имя входа может быть назначено пользователю по его учетной записи Windows® или по группе безопасности Windows, к которой он принадлежит. Дополнительные сведения о создании имен входа см. в разделе Как создать имя входа SQL Server. Использование вместо групп безопасности конкретных учетных записей пользователей обеспечивает более детальный контроль имен входа, поскольку в противном случае администратор

23

Page 24: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Windows может включить нового пользователя в группу безопасности без ведома администраторов базы данных. Но группы безопасности, конечно, значительно проще администрировать. Ниже приведен пример сценария для создания имени входа по учетной записи Windows.

CREATE LOGIN [SQLVM03-18158EA\Pat] FROM WINDOWS

Для создания нового имени входа в базе данных может быть использовано диалоговое окно Создание имени входа, показанное на иллюстрации Error: Reference source not found. Чтобы его открыть, щелкните правой кнопкой мыши папку «Имена входа» в экземпляре сервера и выберите пункт Создать имя входа.

Рис. 8. Диалоговое окно Создание имени входа

Назначение пользователей для ролей сервераИмена входа, определенные в SQL Server, должны быть назначены соответствующим ролям сервера. Назначение имени входа некоторой роли, кроме sysadmin, помогает ограничить доступ этого имени к определенному набору операций на сервере. Например, назначение имени входа роли dbcreator дает разрешение на создание, изменение, удаление и восстановление базы данных. Однако все остальные операции

24

Page 25: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

будут по-прежнему недоступны. Список предопределенных ролей базы данных вместе с операциями, на выполнение которых они дают право, см. в разделе Роли уровня сервера. Ниже приведен сценарий, который показывает, как назначить пользователю роль сервера.

sp_addsrvrolemember N'SQLVM03-18158EA\Pat', N'dbcreator'

25

Page 26: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

На странице свойств, показанной на иллюстрации Error: Reference source not found, можно назначить роль сервера имени входа. Чтобы ее открыть, щелкните правой кнопкой мыши имя входа, выберите Свойства, а затем откройте вкладку Роли сервера.

Рис. 9. Роли сервера для имени входа

Предоставление доступа к базе данныхПосле создания имени входа ему необходимо предоставить доступ к базе данных, чтобы пользователь мог обращаться к данным. Предоставляйте доступ к базе данных только тем пользователям, которым он необходим. После того как доступ предоставлен, нужно позаботиться об ограничении этого доступа. Дополнительные сведения о предоставлении имени входа доступа к базе данных см. в разделе Как создать пользователя базы данных. Ниже приведен сценарий, который показывает, как предоставить имени входа доступ к базе данных Test1.

USE Test1CREATE USER [Pat] FOR LOGIN [SQLVM03-18158EA\Pat]

26

Page 27: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Назначить базу данных для имени входа можно в диалоговом окне Пользователь базы данных — создание, показанном на иллюстрации Error: Reference source not found. В этом диалоговом окне можно также назначить пользователю схему и роли базы данных. Чтобы его открыть, щелкните правой кнопкой мыши папку Пользователи в базе данных и выберите Создать пользователя.

Рис. 10. Диалоговое окно Пользователь базы данных — создание

Назначение пользователям ролей базыданныхПользователям, которым предоставлен доступ к базе данных SQL Server, нужно назначить соответствующую роль базы данных. При назначении пользователю роли, кроме db_owner, ему будет предоставлен доступ к определенному набору операций базы данных. Например, роль db_datareader разрешает пользователю считывать данные из всех таблиц базы данных. Однако все остальные операции будут недоступны этому пользователю. Список предопределенных ролей базы данных вместе с операциями, на выполнение которых они дают право, см. в разделе Роли уровня базы данных. Ниже приведен сценарий, который показывает, как назначить пользователю роль базы данных, позволяющую считывать и записывать данные в базе данных.

27

Page 28: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

sp_addrolemember N'db_datareader', N'Pat'sp_addrolemember N'db_datawriter', N'Pat'

Роли базы данных также можно назначить во время создания пользователя в диалоговом окне Пользователь базы данных — создание, как описано в разделе Предоставление доступа к базе данных.

Управление разрешениямиРазрешения — это права доступа или операции, которые предоставляются или запрещаются для пользователя базы данных или имени входа. Если имени входа или пользователю назначена роль, то он наследует набор разрешений, соответствующих этой роли. Разрешения можно также предоставить непосредственно пользователю или имени входа. Дополнительные сведения, в том числе список разрешений, см. в разделе Разрешения (компонент Database Engine).

Разрешения служат для предоставления гранулярных прав пользователям и ограничивают права, которые наследуются при включении в роль. Например, для пользователя, которому назначены роли базы данных db_datareader и db_datawriter, может быть запрещена возможность удаления записей с помощью команды DENY. Таким же способом можно разрешить пользователю создавать и обновлять записи о ценах, но не удалять их. В следующем сценарии показано, как запретить пользователю удалять строки из таблицы CCTable1.

DENY DELETE ON OBJECT::CCTable1 TO [Pat]

Примечание.Некоторые системные хранимые процедуры и команды DBCC при выполнении проверяют членство в ролях, но не разрешения на выполнение операций. Всегда проверяйте, работают ли разрешения ожидаемым образом, прежде чем переносить их в рабочую среду.

Разрешения ролей сервераКаждая роль сервера содержит соответствующий ей набор разрешений. Эти роли позволяют упростить назначение пользователю набора разрешений. Дополнительные сведения, в том числе наборы разрешений, назначенные предопределенным ролям сервера, см. в разделе Разрешения предопределенных ролей сервера (компонент Database Engine). Ниже приведен пример сценария, применяющего разрешение сервера.

GRANT ALTER ANY LOGIN TO [SQLVM03-18158EA\Pat]

28

Page 29: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

На странице Свойства имени входа, показанной на иллюстрации Error: Reference source not found, можно предоставить или запретить имени входа разрешения сервера. На вкладке Явные перечислены все разрешения и есть возможность предоставить, запретить или разрешить имени входа предоставлять каждое из них. На вкладке Действующие перечислены разрешения, предоставленные имени входа на основании членства в роли. В примере на иллюстрации Error: Reference source not found пользователю Pat запрещено удаление из таблицы CCTable1.

Рис. 11. Разрешения сервера для имени входа

Разрешения базыданныхКаждая роль базы данных содержит назначенный ей набор разрешений. Набор разрешений, назначенных предопределенной роли базы данных, можно найти в разделе Разрешения предопределенных ролей базы данных (компонент Database Engine). Ниже приведен пример сценария, применяющего разрешение базы данных.

USE Test1GRANT CREATE TABLE TO [SQLVM03-18158EA\Pat]

29

Page 30: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

На странице Пользователь базы данных, показанной на иллюстрации Error: Reference source not found, можно предоставить или отозвать разрешения базы данных для пользователя. На вкладке Явные перечислены все разрешения и есть возможность предоставить, запретить или разрешить пользователю предоставлять разрешение. На вкладке Действующие перечислены разрешения, предоставленные пользователю на основании членства в роли.

Рис. 12. Разрешения пользователя базы данных

Разрешения уровня столбцаБезопасность на уровне столбца позволяет предотвратить доступ пользователя к определенному столбцу таблицы. Для предотвращения доступа к столбцу служит разрешение DENY для объекта. Ниже приведен пример сценария для запрещения доступа к столбцу.

DENY SELECT ON [CCTable1] ([CCNumber]) TO [SQLVM03-18158EA\Pat]

Примечание.Запрос завершится ошибкой, если он содержит столбец, к которому пользователь не имеет доступа. Например, инструкция SELECT * не будет работать для таблицы, содержащей столбец, доступ к которому пользователю

30

Page 31: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

запрещен. Рекомендуется указывать в приложениях конкретные столбцы, а не использовать инструкцию SELECT *.

31

Page 32: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Показанная ниже страница свойств таблицы базы данных позволяет блокировать доступ к определенным столбцам. Пример на иллюстрации Error: Reference source not found показывает, что пользователю Pat запрещен доступ к столбцу, содержащему номер кредитной карты. Чтобы кнопка Разрешения столбца была активной, пользователю должно быть предоставлено разрешение SELECT для таблицы.

Рис. 13. Предоставление и запрещение разрешений для столбца базы данных

32

Page 33: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Разграничение обязанностейРазграничение обязанностей (SOD), также называемое разграничением ответственности или разделением ролей, является важным условием при управлении разрешениями и удостоверениями. Это помогает снизить угрозы, возникающие при работе конкретных работников, и обеспечивает контроль за правильностью выполнения задач. Например, если задаче назначены автор, рецензент и контролер, то каждый из этих сотрудников будет смотреть за тем, чтобы остальные не выходили за рамки отведенных им полномочий и не делали ошибок во время выполнения своих задач. Разграничение обязанностей преследует две основные цели.

Обеспечение отсутствия конфликтов ролей пользователей (например, для рецензента и контролера).

Недопущение выхода пользователя, выполняющего определенную роль, за рамки своих полномочий.

Многим компаниям, занимающимся обработкой данных, хотелось бы исключить доступ привилегированных пользователей к конфиденциальным данным. На текущий момент SQL Server не в состоянии запретить членам роли sysadmin выполнение определенных операций, которые могут вызвать конфликт с правилами разграничения обязанностей. Однако можно создать средства снижения рисков, которые в состоянии сократить риски, связанные с возможностью выполнения пользователем sysadmin недопустимых операций. Во-первых, можно отключить учетную запись sa. Во-вторых, совершенно необходимо ограничить круг лиц, входящих в роль sysadmin. В третьих, каждая операция, выполняемая пользователем sysadmin, подлежит аудиту и контролю. Помимо этого, для проверки действия этих средств должно использоваться управление на основе политик. Примеры управления разграничением обязанностей с помощью управления на основе политик см. в разделе Управление разграничением обязанностей.

sysadminОграничение использования ролиЧлены роли сервера sysadmin в SQL Server имеют возможность выполнить любую функцию в базе данных. Поэтому решение о включении пользователей в эту роль должно рассматриваться с особой тщательностью. Права доступа должны быть выданы минимально возможному числу пользователей. Неплохо иметь несколько администраторов для выполнения резервного копирования, но распределение широких полномочий — тоже не выход.

saОтключение учетной записиВ реальных условиях учетная запись sa не нужна для управления SQL Server и поэтому не должна использоваться. Учетная запись sa не сопоставлена с определенным лицом, поэтому достаточно определить, кто же должен пользоваться учетной записью sa. Можно переименовать учетную запись в среде SQL Server

33

Page 34: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Management Studio, чтобы приложения не могли ей пользоваться. Кроме того, чтобы пользователи вообще не могли ей пользоваться, эту учетную запись можно отключить.

sysadmin Использование подписанных процедур для работыв качестве( sysadmin)отключение всех учетных записейОтключение всех учетных записей sysadmin может оказаться проблематичным, поскольку только sysadmin может повторно включить учетную запись sa или запускать определенные команды, например DBCC PINTABLE. Однако это ограничение можно обойти за счет использования подписанных процедур. Подписанная процедура может запускаться от имени роли sysadmin пользователем, который не включен в роль sysadmin. Такая процедура может быть использована для включения и отключения всех учетных записей sysadmin. Дополнительные сведения см. в разделе Отключение всех учетных записей sysadmin. Они также служат для выполнения операций, обычно зарезервированных для роли sysadmin. Это позволяет непривилегированным пользователям выполнять такие действия, но не иметь всех разрешений, доступных роли sysadmin.

Примечание.Не предоставляйте разрешение CONTROL SERVER именам входа. Это разрешение дает пользователю возможность выполнять многие из операций sysadmin. Помимо этого, пользователь сможет олицетворять учетную запись sa даже в том случае, если она отключена. Если предоставление пользователю разрешения CONTROL SERVER необходимо, то это лучше делать совместно с DENY IMPERSONATE для каждой учетной записи sysadmin. Далее приведен пример.

USE masterDENY IMPERSONATE ON LOGIN::Yukonsa TO [SQLVM03-18158EA\Pat];

sysadmin, Учетные записи определяемыево время установкиВ следующей таблице описаны участники, которые во время каждой новой установки определяются для роли sysadmin. При обновлении версии текущее членство в роли sysadmin не изменяется.

sysadmin SQL Server 2008Назначение роли во время установкиСлужбам SQL Server во время установки назначаются учетные записи службы. Однако рекомендуется переключить их на учетные записи домена или локальных пользователей, чтобы нельзя было запустить от имени учетных записей служб другие приложения и получить доступ к ресурсам SQL Server. Дополнительные сведения о том, как переключить учетные записи служб, см. в разделе Настройка учетных записей службы Windows.

В новых установках SQL Server 2008 в роль sysadmin по умолчанию включается базовый набор из трех участников.

Учетная запись Цель

34

Page 35: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

sa Обязательная учетная запись пользователя для учетной записи sysadmin при работе в смешанном режиме. Эта учетная запись по умолчанию отключена, если установка SQL Server производится в режиме проверки подлинности Windows.

Участник Windows Это обязательная учетная запись Windows, которая должна быть указана во время установки. Это лицо действует в качестве sysadmin для экземпляра SQL Server.

NT AUTHORITY\SYSTEM Используется такими службами Windows, как Центр обновления Майкрософт, служба обновления Windows, диспетчер конфигурации System Center и сервер кластеров Windows.

Таблица 1. Участники роли sysadmin, определяемые во время установки

35

Page 36: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

При установке SQL Server на Windows Vista® или Windows Server 2008 в роль sysadmin добавляются следующие участники.

Учетная запись ЦельNT SERVICE\MSSQLSERVER Это специальный идентификатор

безопасности (SID), назначаемый службе SQL Server во время установки. Он не заменяет учетную запись, от имени которой запускается эта служба. Она должна остаться «NETWORK SERVICE», если только не изменена тем, кто устанавливал SQL Server. Этот идентификатор безопасности используется при соединении службы с SQL Server. Эта учетная запись используется, когда служба соединяется с удаленным ресурсом, например с общей папкой для сохранения журналов.

NT SERVICE\SQLSERVERAGENT Это специальный идентификатор безопасности, назначаемый службе агента SQL Server во время установки. Он не заменяет учетную запись, от имени которой запускается эта служба. Она должна остаться «NETWORK SERVICE», если только не изменена тем, кто устанавливал SQL Server. Этот идентификатор безопасности используется при соединении службы с SQL Server. Эта учетная запись используется, когда служба соединяется с удаленным ресурсом, например с общей папкой для сохранения журналов.

Таблица 2. Участники роли sysadmin, назначаемые в операционных системах Windows Vista и Windows Server 2008

При установке SQL Server на любых операционных системах, кроме Windows Vista и Windows Server 2008, в роль sysadmin добавляются следующие учетные записи.

Учетная запись ЦельNT AUTHORITY\NETWORK SERVICE Назначается службе SQL Server и службе

агента SQL Server по умолчанию. Это учетная запись, которая используется для доступа к SQL Server и его ресурсам. Рекомендуется использовать учетную запись Windows, чтобы нельзя было запустить от имени этой учетной записи другую службу и получить доступ к SQL Server. Использование учетной записи Windows чревато тем, что служба может перестать работать после смены пароля, если новый пароль не отразить на вкладке Вход в систему страницы свойств службы.

localhost\SQLServer2005MSSQLUser$ Это группа Windows, которая служит для

36

Page 37: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

localhost$MSSQLSERVER определения пользователей, которым необходим доступ к SQL Server.

localhost\SQLServer2005SQLAgentUser$localhost$MSSQLSERVER

Это группа Windows, которая служит для определения пользователей, которым необходим доступ к агенту SQL Server.

Таблица 3. Участники роли sysadmin, назначаемые в предыдущих версиях Windows

Примечание.В этой таблице localhost представляет имя компьютера.

SID Windows Vista Windows Назначение служб в операционных системах иServer 2008Windows Vista и Windows Server 2008 реализуют возможность назначения службам скрытых идентификаторов безопасности. Во время установки SQL Server 2008 службам SQL Server и агента SQL Server назначаются отдельные идентификаторы безопасности. Учетная запись, назначенная службам, по-прежнему требует запуска службы и доступа к внешним ресурсам. Но когда службы производят доступ к SQL Server и локальным ресурсам, например к файлам или параметрам реестра, используются соответствующие SID.

BUILTIN\AdministratorsИспользование группыДо версии SQL Server 2008 члены группы BUILTIN\Administrators были также и членами роли sysadmin в SQL Server. Но при установке на Windows Vista или Windows Server 2008 члены группы Administrators запускаются как стандартные пользователи, поэтому для них доступ к SQL Server блокируется. Разумеется, можно повысить их маркеры безопасности до административных, чтобы получить доступ к SQL Server, но так делать не рекомендуется. SQL Server 2005 с пакетом обновления 2 (SP2) поставляется со средством обеспечения учетных записей, которое позволяет администраторам добавить их учетные записи Windows в роль sysadmin.

SQL Server 2008 не добавляет группу BUILTIN\Administrators в роль sysadmin. Средство обеспечения учетных записей также недоступно. Однако во время установки учетные записи Windows можно добавить в роль sysadmin. Если необходимо, после установки дополнительные учетные записи Windows можно добавить в учетную запись sysadmin. Рекомендуется не добавлять группы Windows в роль sysadmin, так как это может привести к тому, что любой пользователь сможет получить доступ на чтение и запись для этой группы и таким образом получит доступ к SQL Server.

Управление идентификаторами вмногоуровневыхприложенияхМногие приложения реализуют доступ пользователей к базе данных через учетную запись службы, специально созданную для этого приложения. Это дает возможность предотвратить прямой доступ пользователя к базе данных и оптимизировать администрирование, однако лишает базу данных возможности отслеживать, кто из пользователей выполняет ту или иную операцию. Использование учетной записи службы с правом доступа IMPERSONATE может дать приложению возможность выполнить команду EXECUTE AS, чтобы назначить пользователю определенную роль,

37

Page 38: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

ограничивая таким образом набор операций, доступных для выполнения. Можно отключить олицетворяемую учетную запись, чтобы лишить пользователей возможности входа в систему, тем не менее оставив им определенные возможности на более гранулярном уровне.

38

Page 39: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Шифрование данных в базе данныхЗащита конфиденциальных данных — важный аспект работы с базами данных. SQL Server 2008 обеспечивает несколько способов защиты таких данных с помощью шифрования. В этом разделе рассматривается использование шифрования в SQL Server и связанные с этим соображения. Дополнительные сведения, в том числе сценарии для управления шифрованием на основе политик, см. в разделе Управление ключами шифрования.

SQL ServerШифрование в базе данныхНачиная с SQL Server 2005 для приложений баз данных доступно собственное шифрование. Ранее приложения должны были самостоятельно реализовывать возможности шифрования с помощью CAPICOM. Дополнительные сведения об использовании шифрования в SQL Server см. в разделе Шифрование в SQL Server.

Выбор алгоритмашифрованияОбычно выбор алгоритма шифрования представляет собой компромисс между степенью защищенности и уровнем производительности. В общем случае чем длиннее ключ шифрования, тем большую степень защиты он обеспечивает, но тем больше времени требует для выполнения. Асимметричные ключи работают медленнее, чем симметричные, однако обеспечивают более надежную защиту, при этом ключ для расшифровки остается в секрете. При использовании сертификатов возможен их отзыв, однако SQL Server не поддерживает эту функцию (кроме локального удаления сертификата). Дополнительные сведения о выборе алгоритма см. в разделе Выбор алгоритма шифрования.

Использование прозрачногошифрования данныхВ SQL Server 2008 было реализовано прозрачное шифрование данных (TDE), которое позволяет шифровать данные в базе данных без необходимости внесения изменений в приложение. TDE выполняет шифрование файлов данных, журналов и резервных копий.

39

Page 40: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

На иллюстрации Error: Reference source not found показаны операции, которые необходимо рассмотреть при реализации TDE.

Обязательно создайте резервную копию закрытого ключа сертификата. Сертификаты и ключи должны периодически меняться в соответствии с

требованиями нормативов. Пользуйтесь расширенным управлением ключами (EKM) для обеспечения более

строгой защиты ключа и разграничения обязанностей. Наблюдайте за доступом к ключам и шифрованию.

Рис. 14. Управление ключами для прозрачного шифрования данных

Possible algorithms includeAES (128, 192, 256bit) and 3DES

Protects

Extensible KeyManagement

RotationKey Server

Backup

Создание резервной копии закрытого ключа сертификатаКлюч шифрования для шифрования TDE в базе данных хранится в базе данных и защищен сертификатом. После создания сертификата необходимо создать резервную копию закрытого ключа этого сертификата, прежде чем использовать ключ совместно с TDE. Если по некоторым причинам сертификат был уничтожен до создания резервной копии, то все резервные копии, защищенные с помощью TDE, будет непригодны для восстановления. Ниже приведен сценарий, который может быть использован для создания резервной копии сертификата.

USE masterBACKUP CERTIFICATE [MyServerCert] TO FILE = 'c:\certificates\MyServerCert.crt' WITH PRIVATE KEY (FILE = 'c:\certificates\MyServerCert.pvk', ENCRYPTION BY PASSWORD = 'MyPass7779311#');

Резервная копия сертификата должна храниться в защищенном месте. Запишите ее на диск и храните в сейфе или импортируйте в базу данных-получатель с ограниченным доступом.

40

Page 41: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Смена сертификатов в сравнении со сменой ключейМногие нормативы требуют от организаций регулярной смены ключей шифрования. Для смены сертификатов и ключей шифрования TDE в базе данных можно пользоваться сценариями. Вам может показаться, что лучше будет сменить ключ шифрования базы данных, однако на самом деле для этой цели лучше подходит смена сертификата. Это даст возможность обновить защиту без перешифрования базы данных. Кроме того, при смене сертификата проще отменить доступ к зашифрованным данным. При смене ключа шифрования базы данных выполняется перешифрование данных, однако это не повышает уровень защиты.

Например, если сто лент с резервными копиями базы данных созданы с использованием ста различных ключей шифрования, то все они будут доступны по одному и тому же сертификату. Если между созданием резервных копий провести смену сертификата, то для получения данных с ленты потребуется доступ к ста сертификатам.

Каждый раз при создании сертификата необходимо выполнить его избыточное резервирование. Для создания резервной копии можно воспользоваться сценарием. Резервные копии сертификатов нужно немедленно импортировать в защищенную базу данных и скопировать уничтожаемые или сохраняемые ключи в надежное место. Для регулярной смены ключей можно создать задание. Управление на основе политик позволит гарантировать, что сертификаты или ключи меняются по регулярному расписанию.

Примечание.При восстановлении зашифрованной резервной копии, моментального снимка или записи журнала для расшифровки данных используется сертификат. Поэтому нужно создать копию сертификата и защитить ее для предотвращения несанкционированного доступа к конфиденциальным данным.

Наблюдение за доступомкключуДоступ к ключу шифрования является конфиденциальной операцией. Его наблюдение может служить средством снижения рисков в соответствии с требованиями PCI и других нормативов. Ключи и сертификаты для TDE хранятся в базах данных user и master соответственно. Доступ к этим объектам может отслеживаться по указанию сервера типами действий аудита DATABASE_OBJECT_ACCESS_GROUP и DATABASE_OBJECT_CHANGE_GROUP (первый наблюдает за доступом к ключу, а второй — за его изменением). Объем журнала по этим действиям для рабочих баз данных невелик, поскольку отслеживание выполняется по совсем небольшому числу объектов, которые в рабочих условиях изменяются очень редко. Ниже приведен список объектов баз данных.

• Сборка• Асимметричный ключ (только закрытая часть ключа)• Сертификат (только закрытая часть ключа)• Спецификации аудита базы данных (только изменения)

41

Page 42: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

• Полнотекстовый каталог• Список полнотекстовых стоп-слов (только SQL Server 2008)• Функции секционирования (только изменения)• Схема (только изменения)• Объекты компонента Service Broker

o Контрактo Тип сообщенийo Привязка удаленной службыo Маршрутo Служба

• Симметричный ключ• Триггеры (только изменения)

Наблюдение зафлажкомшифрования в базе данныхПосле назначения ключа шифрования для включения TDE в базе данных флажок шифрования также должен быть установлен. Чтобы обеспечить постоянную защиту базы данных, необходимо его отслеживание. Чтобы включить наблюдение за флажком шифрования для базы данных, в спецификацию аудита сервера нужно добавить тип действий аудита DATABASE_CHANGE_GROUP.

Работа в конкретных сценарияхSQL Server 2008 реализует ряд возможностей для защиты конфиденциальных данных. Выбор конкретного варианта зависит от требуемой степени защиты, возможности изменения приложения, уровня производительности и других нюансов. При подборе механизма защиты следует исходить из того, от каких угроз вы собираетесь защищаться.

Защита от хищения компьютераДоступны следующие методы защиты: шифрование файловой системы Windows (EFS), шифрование дисков BitLocker и TDE. Каждый из них может быть использован независимо или в сочетании с другими методами и обеспечивает защиту файлов базы данных, хранящихся в файловой системе, в случае похищения компьютера, на котором находится база данных. EFS и BitLocker™ позволяют любому пользователю с административными правами производить доступ к компьютеру и просматривать файлы базы данных без использования SQL Server. EFS и BitLocker защищают файлы только тогда, когда они находятся на защищенной системе. Использование EFS и BitLocker может привести к снижению производительности базы данных. Если скопировать файл на незащищенный том, то данные перестанут быть зашифрованными. TDE защищает файл базы данных при копировании в другую систему и резервном копировании на ленту. Дополнительные сведения об использовании TDE в сравнении с BitLocker или EFS см. в разделе Шифрование базы данных в выпуске SQL Server 2008 Enterprise Edition.

42

Page 43: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

sysadmin dboПредотвращение доступа иДля пользователя sysadmin и владельца базы данных (dbo) просмотр данных в таблицах не может быть заблокирован. Однако сами роли sysadmin и db_owner можно отключить, устранив таким образом эту уязвимость. Выполнение операций, доступных только пользователю sysadmin, можно реализовать через вызов хранимых процедур. Дополнительные сведения см. в разделе Ограничение использования пользователя sysadmin. Когда доступ пользователей sysadmin или dbo необходим, то можно реализовать отслеживание их действий через подсистему аудита SQL Server. Дополнительные сведения см. в разделе Отслеживание доступа sysadmin и db_owner.

Защита столбца в таблице базы данныхЧасто необходимо защитить в таблице всего один столбец, который содержит конфиденциальные данные, такие как номер кредитной карты. SQL Server 2008 предусматривает несколько способов добиться этого. Столбец можно зашифровать с помощью криптографической функции. Дополнительные сведения см. в разделе Как зашифровать столбец данных. Этот механизм требует поддержки приложения, для него будут недоступны поиск и индексирование. Кроме того, это может отрицательно сказаться на производительности выполнения запросов. Столбец данных можно также защитить средствами безопасности уровня столбца, которые обсуждались выше в этом документе, в разделе Разрешения уровня столбца.

43

Page 44: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Аудит конфиденциальных операцийВ этом разделе рассматривается наблюдение за конфиденциальными операциями с помощью подсистемы аудита SQL Server. Подсистема аудита SQL Server может использоваться для отслеживания событий базы данных на верхнем уровне с помощью групп действий аудита либо с помощью групп действий аудита с более низкой гранулярностью. Список групп и действий аудита, доступных для отслеживания, см. здесь. Сценарии, иллюстрирующие управление аудитом и создание различных элементов аудита, можно найти ниже в разделе Управление аудитом.

Пример показывает, как централизовать сбор журналов аудита в общей сетевой папке с помощью System Center Operations Manager. Приведенный сценарий демонстрирует разработку повторяющихся отчетов с помощью служб SQL Server Integration Services (SSIS) и SQL Server Reporting Services (SSRS), как показано на иллюстрации Error: Reference source not found.

Рис. 15. Централизация журналов аудита и подготовки отчетов

С точки зрения высокого уровня аудит конфиденциальных операций сводится к аудиту различных баз данных и серверов и размещению файлов журналов аудита в централизованном местоположении («Папка журналов» на рис. 15). На основе данных

44

Page 45: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

из этого места можно разрабатывать собственные процессы (например, с помощью служб SQL Server Integration Services) для упорядочения и преобразования журналов аудита в отчеты, пригодные для использования.

СборжурналовОбъект подсистемы аудита SQL Server можно настроить для сохранения журнала в файле. Рекомендуется отправка журналов для сохранения в удаленной общей папке. Таким образом они выводятся из-под контроля администратора сервера, и обеспечивается возможность их консолидации с журналами других серверов. К папке, в которой сохраняются журналы, должен быть предоставлен доступ на запись службе SQL Server. По умолчанию эта служба запускается от имени учетной записи NETWORK SERVICE. Риск использования этой учетной записи заключается в том, что любая служба, которая запускается от ее имени, имеет доступ к папке, где хранятся журналы, и может их перезаписать. Для снижения этого риска можно использовать учетную запись пользователя. Однако если эту учетную запись отключить или сменить пароль для нее, то для каждой из служб, в которой она используется, нужно будет обновить пароль, в противном случае служба SQL Server не сможет запуститься.

Передачажурналов Чтобы снизить риск перезаписи файлов журналов, их можно перемещать в закрытую базу данных. После того как файл журнала оказался в базе данных, к нему будут иметь доступ только пользователи, которые имеют доступ к этой базе данных. Имейте в виду, что аудиторы могут быть заинтересованы в возможности изменения журналов после их загрузки в таблицу базы данных. Можно создать пакет служб SSIS, который будет перемещать файлы журналов в таблицу базы данных. Пакет можно загрузить в задание, созданное с помощью агента SQL Server Agent, для его запуска по расписанию, что позволит сократить риск перезаписи файлов журналов.

Использование сценариев и средств для управленияаудитомПосле того как будет включен аудит в базе данных, вы получите массу информации в виде журналов аудита. Эти журналы быстро заполнят отведенное для них место, поэтому нет смысла вечно хранить все эти журналы аудита. Проще всего загружать данные аудита в базу данных SQL Server, где можно выполнять запросы, которые позволят быстро разобраться в том, что происходит в SQL Server.

Основной поток данных по обработке журналов аудита показан на иллюстрации Error: Reference source not found.

Рис. 16. Пример GRC

45

Page 46: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

1) Чтение журналов: необходим механизм считывания файлов журналов аудита, фильтрации и преобразования содержащихся в них данных.

2) Добавление идентификатора импорта: чтобы отметить обработанные журналы аудита, определите в своем процессе ETL файлы, которые прошли обработку, и присвойте им идентификатор импорта. Таким образом все импортируемые события аудита будут связаны с идентификатором импорта. Это позволит впоследствии определить источник аудита.

3) Управление и загрузка измерений: существуют текстовые описания для различных событий аудита и связанных с ними кодов доменов (например, категория аудита и класс безопасности). Чтобы сократить размер базы данных аудита, свяжите идентификаторы измерений с таблицей фактов события аудита и введите отдельную таблицу измерения, по которой можно будет перевести идентификатор измерения в имя измерения.

4) Разбиение и загрузка фактов: здесь основной целью является преобразование всех данных таким образом, чтобы таблицы фактов событий аудита содержали идентификаторы, а не текстовые значения, что позволит сократить занимаемый объем данных. Дополнительным преимуществом выполнения шагов 3 и 4 является тот факт, что при построении отчетов аудита можно будет просматривать их по указанным категориям.

5) Подсчет строк и сохранение информации о файле: чтобы обеспечить аудит механизма обработки журналов аудита, нам нужно проверить, какие файлы аудита будут обрабатываться (сохранение информации о файле). Шаг подсчета строк представляет собой дополнительное средство проверки, которое сверяет число строк в базе данных и число строк в файле журнала аудита.

Дополнительные сведения см. в разделе Проект аудита.

Аудит определенныхпользователей и таблицПодсистема аудита SQL Server позволяет выполнять аудит на нескольких уровнях гранулярности. Аудит вообще всех операций в базе данных выполнить практически невозможно, так как это породило бы такой объем журнала, собрать который чрезвычайно трудно. Это также потребовало бы огромного места на диске и значительного расширения полосы пропускания сети. Вместо этого подсистема аудита SQL Server предоставляет возможность наблюдения за определенными ресурсами — пользователями, группами, таблицами и определенными действиями, такими как SELECT, UPDATE и EXECUTE. В следующих разделах эти возможности описаны более подробно.

46

Page 47: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Аудит отдельных пользователейЕсли вы можете гарантировать, что ваша среда безопасна (например, когда изменение схемы и данных могут выполнять только члены роли sysadmin, а все остальные пользователи могут только считывать данные), можно просто организовать аудит пользователя sysadmin. Однако при этом придется исходить из предположения, что авторизованные пользователи не совершают ошибок и что имеются политики безопасности, покрывающие абсолютно все проблемы. Такой подход часто применяется в рабочих средах, и если эти предположения близки к истине, то можно включить аудит только для пользователя sysadmin, чтобы отслеживались все выполняемые им действия.

Но во многих случаях потребуется включить его и для многих других пользователей, поскольку им также необходимо выполнять вставку, обновление и изменение данных в системе. К счастью, в вашей среде только пользователь sysadmin может изменять схемы и объекты, но это не избавляет от необходимости аудита пользователей, имеющих возможность изменения данных.

Наконец, можно просто включить аудит для всех пользователей, если вы считаете, что это может оказаться для компании перспективным подходом. Но в этом случае журналы аудита будут очень быстро расти, поскольку в них регистрируются все действия, включая те, которые пользователь выполняет на законных основаниях. Это может быть оправданным, например, в здравоохранении, где необходим контроль любого доступа пользователей к базе данных, даже если они просто запрашивают данные в соответствии с нормативами HIPAA. Если вы считаете, что политики безопасности не покрывают всех возможных случаев, можно включить аудит для всех пользователей на случай вторжения хакеров (например, атаки путем внедрения кода SQL). Но если такой уровень детализации не требуется, можно сократить нагрузку на журналы и выполнять аудит только для пользователей, выполняющих изменение схемы (т. е. sysadmin), и пользователей, которые могут изменять данные в базе данных.

Аудит отдельных таблицТочно так же, как есть пользователи, для которых отслеживание действий не требуется, существуют и таблицы, для которых не нужно вести аудит. Например, если задать права доступа таким образом, чтобы данные могли изменяться только в небольшом наборе таблиц, то имеет смысл ограничить и аудит изменением данных в этих таблицах.

В то же время, существует ряд сценариев, в которых нужно выполнять аудит любых действий, но включать в отчеты нужно только те из таблиц, которые считаются конфиденциальными. Таким образом, на сей раз необходимо включить нужные данные в отчет, а не сохранить все данные аудита в целях обеспечения соответствия требованиям. Чтобы добиться этого, конвейер, обрабатывающий данные аудита, будет считывать из таблицы конфигурации или файла список таблиц, включенных в обработку (или исключенных из нее).

47

Page 48: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

sysadmin db_ownerОтслеживание доступа иЧасто отслеживание действий пользователей с высокими привилегиями необходимо в большей мере, чем для других пользователей, имеющих ограниченные разрешения. Подсистема аудита SQL Server обеспечивает простоту аудита ролей sysadmin и db_owner на любом уровне гранулярности. При определении действий для создаваемой базы данных назначение db_owner в качестве имени участника приводит к тому, что члены роли базы данных db_owner и роли сервера sysadmin также будут отслеживаться, поскольку члены роли sysadmin сопоставлены dbo, который всегда является членом роли db_owner. Следующий сценарий показывает, как это сделать.

USE [Test1]ALTER DATABASE AUDIT SPECIFICATION [AuditDBO] ADD (SELECT ON [dbo].[CCTable1] BY [dbo])

ЦентрализацияжурналовЕсли вы собираетесь выполнять аудит только для одного сервера, то в централизации файлов журналов особого смысла нет. Но в большинстве случаев приходится работать с большим количеством серверов и большим количеством журналов аудита. Поэтому оптимальным подходом будет создание журналов аудита и отправка их в централизованное местоположение. С точки зрения управляемости, если необходимо просмотреть журналы аудита, проще сделать это в одном месте, чем просматривать множество отдельных серверов. Если из каких-либо соображений бизнес-логики нужно вести раздельные хранилища (папки) аудита, то централизация никак не мешает этому. Помимо прочего, с папками в централизованном местоположении проще работать.

В результате централизации хранения журналов аудита централизуется также и обработка. Таким образом, группа выделенных серверов сбрасывает файлы журналов в централизованное местоположение, где они обрабатываются, и при этом действия источников данных и действия аудита (обработка и запросы) никак не мешают друг другу. Например, часто размеры файлов журналов разбиваются так, чтобы каждый из них занимал около 100 МБ. Можно немного увеличить этот размер, если количество файлов слишком велико, но в то же время файлы журналов не должны быть слишком велики, поскольку так на их обработку будет уходить слишком много времени.

Помимо этого, централизованная обработка позволит создавать отчеты для просмотра аудита всей среды из единого места.

Примечание.Единственным нежелательным эффектом централизации является снижение производительности. Если нужно выполнять аудит множества событий (например, сценарии для обеспечения соответствия требованиям HIPPA требуют аудита каждого пользователя и каждой таблицы), то будет порождаться огромное количество данных, и журнал аудита будет мало отличаться от журнала транзакций. Обычный файловый сервер с сетевым адаптером 100 МБ может не справиться с такой нагрузкой и снизить пропускную способность обработки запросов.

48

Page 49: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Создание отчетов изфайловжурналовЦелью этого раздела является получение отчетов аудита, которые дают представление о событиях, возникающих во всей среде SQL Server. В разделе Полезные советы и сценарии показано несколько способов (в порядке возрастания сложности) анализа файлов журналов. В нем имеются примеры отчетов высокого уровня, которые можно создать для получения представления о работе системы. Отчеты разбиты по типу действий: сервер, база данных, DDL и DML.

— Общие сведения действия сервераЭтот отчет содержит общие сведения обо всех произошедших за день событиях с разбивкой по экземплярам сервера, участнику базы данных, классу и действию.

Рис. 17. Отчет о действиях сервера

— Анализ трендов действия сервераЕсли к этому добавить диапазон дат, то можно увидеть не только огромное количество успешно выполненных операций входа в систему, но и множество операций администрирования и ошибок входа. Дальнейший анализ показывает интересные закономерности, относящиеся к ошибкам входа. Как видно на рис. 18, мы просмотрели отчет «Общие сведения — действия сервера» за три дня, с 19.08.2008 по 21.08.2008, и выделили только действие Ошибка входа.

49

Page 50: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Рис. 18. Отчет «Анализ трендов — действия сервера»

В данном случае 21.08.2008 ошибок входа было больше, чем во все остальные дни. Вот пример статистического отчета, содержащего полезную логику, — в данном случае надо более подробно разобраться в причинах, вызвавших ошибки входа в эти дни.

Детализация действий сервераЕсли вернуться к рис. 17, то можно также выполнить детализацию этого отчета, чтобы просмотреть более подробную информацию об этих ошибках входа. В данном примере было 83 ошибки. Щелкнув это число, можно просмотреть подробности по ошибкам входа.

Рис. 19. Отчет «Действия сервера — подробности»

— Общие сведения действия базыданныхТочно так же, как и по действиям сервера, можно просмотреть события аудита по числу выполненных действий базы данных. Как показано на рис. 20, имеется два экземпляра сервера, в которых 21.08.2008 было выполнено три и четыре действия базы данных.

Рис. 20. Отчет «Действия базы данных»

50

Page 51: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Детализация действий базыданныхЭтот отчет показывает, что были выполнены три действия GRANT в базе данных DataCollectionSPW и четыре действия CREATE в базе данных master. Детализация (по щелчку этого числа) немедленно показывает, что четыре действия CREATE были всего лишь инструкциями RESTORE LABELONLY, выполненными от имени входа MYDOMAIN\Sql.

Рис. 21. Отчет «Действия базы данных — подробности»

Примечание. При создании резервной копии базы данных user для поиска резервного носителя необходимы разрешения CREATE для базы данных master. Разрешение CREATE не совсем верно отражает суть, поскольку в результате операции ничего не создается, но тем не менее оно необходимо для выполнения резервного копирования, раз инструкция RESTORE LABELONLY присутствует в приведенном аудите.

— DDLОбщие сведения действияЧтобы разобраться, какие определения данных выполняются в вашей среде, откройте отчет Общие сведения — действия DDL, показанный на иллюстрации Error: Referencesource not found. В данном случае 20.08.2008 было выполнено 44 инструкции DROP TABLE для базы данных SQLDBADMIN в указанном экземпляре.

51

Page 52: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Рис. 22. Отчет «DDL базы данных»

DDLДетализация действийЧтобы убедиться, что инструкции DROP TABLE являются верными, можно выполнить детализацию до отдельных действий DDL. Здесь показаны время, действие, имя объекта и инструкция, выполненная для его удаления, что позволяет увидеть выполненную операцию.

Рис. 23. Отчет «DDL базы данных — подробности»

52

Page 53: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

— DMLОбщие сведения действияМожно также просмотреть типы инструкций DML, выполненных в системе. В отчете Общие сведения — действия DML показано, что 21.08.2008 было выполнено четыре инструкции DELETE в базе данных SQLDBADMIN.

Рис. 24. Отчет «DML базы данных»

DMLДетализация действийЭтот отчет содержит подробные сведения, которые помогут определить правильность каждого из действий DML. Щелкнув цифру «4», можно увидеть полные инструкции DELETE вместе с именем участника-службы сервера пользователя, которым они были выполнены.

Рис. 25. Отчет «DML базы данных — подробности»

53

Page 54: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Использование управленияна основе политик для, определения развертыванияи проверкиполитик

До сих пор в этом пакете SDK показывалось, как управлять безопасностью, идентификаторами, шифрованием и аудитом в целях обеспечения соответствия требованиям. В данном разделе приведены примеры использования управления на основе политик для проверки правильности настройки каждой из этих областей в соответствии с политикой.

Структура управления на основе политикУправление на основе политик моделирует компьютер, базу данных и объекты в ней в виде иерархической структуры управляемых целей со вложенными целевыми типами. Управление на основе политик дает возможность определять категории, указывающие на группу политик. Каждая политика состоит из единственного условия, используемого для ее проверки. Каждое условие содержит одно выражение, которое состоит из предложений. Каждая политика может относиться к базе данных или объекту базы данных, такому как пользователь, таблица или хранимая процедура. Эти понятия изображены на схеме Error: Reference source not found. Дополнительные сведения о категориях, выражениях, аспектах, политиках и целях управления на основе политик см. в разделе Администрирование серверов с использованием управления на основе политик.

При необходимости можно определить собственный набор политик. Для начала можно воспользоваться набором политик, поставляемым в составе SQL Server 2008. Их описание см. здесь.

Рис. 26. Объекты управления на основе политик и их связи

Policy

Condition

Expression 1Expression 2

:Expression n

Category

Policy

Condition

Expression 1Expression 2

:Expression n

Policy

Condition

Expression 1Expression 2

:Expression n

Table

Server

Certificate

Audit

Database

:

Target

54

Page 55: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Пример управления на основе политикЧтобы соотнести управление на основе политик (PBM) с набором политик базы данных, начните с создания категории, представляющей норматив или область политик, управлять которыми необходимо вашей компании. Например, создадим категорию под названием PCI, если это стандарт, которому нам нужно соответствовать. Затем создадим набор политик PBM, соответствующих политикам норматива. Это те политики, которые мы хотим и можем автоматизировать. Определим условия, необходимые для проверки каждой из политик, и свяжем их с базой данных, подпадающей под действие стандарта PCI. На иллюстрации Error: Reference source not found показано, как можно настроить управление на основе политик в соответствии с PCI.

Рис. 27. Пример управления на основе политик

Access Policy

Limit Access

sa disabledlimit DB users

:audit DB access

PCI

Encryption Policy

Encrypt Data

encryption enabled

log flag access

KeyPolicy

Manage Keys

keys rotatedkeys copied

:log key access

PCI DB3

PCI DBn

PCI DB2

PCI DB1

PCI DB4

:

Target

Наблюдение за управлениемна основе политикКаждая из политик PBM может отслеживаться, что обеспечивает ее соответствие требованиям. Проверка может выполняться либо по расписанию, либо при возникновении каких-либо изменений в целевом объекте, для которого политика была создана (но не то и другое одновременно). Однако оба способа необходимы для того, чтобы гарантировать применение политики в течение определенного периода времени и неизменность условий между проверками по расписанию. Для этого создайте для каждой политики норматива два набора политик PBM, которые должны быть представлены в управлении на основе политик.

Использование управленияна основе политик для обеспечения соответствия требованиям

С точки зрения соответствия требованиям возможности управления на основе политик «По расписанию» и «По запросу» дают возможность регулярно проверять работоспособность и выявлять пользователей и причины нарушений и рекомендаций. Параметр При изменении — запретить препятствует внесению изменений пользователями, а При изменении — записать в журнал позволяет вносить изменения, но регистрирует эти изменения.

55

Page 56: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Создание планаСпособ планирования политик целиком и полностью определяется продуктом, правилами компании, рекомендациями и стандартами ИТ. В качестве примеров политик можно привести следующие.

Соглашения об именах: использование определенных правил именования для объектов базы данных (например, хранимые процедуры, связанные с пользовательским интерфейсом, должны иметь префикс usp).

Отсутствие пользовательских объектов в системных базах данных: гарантирует, что пользовательские объекты даже случайно не смогут быть помещены в базы данных master, msdb и tempDB.

Резервная копия базы данных является текущей: можно определить эксплуатационные соглашения, предусматривающие, что резервная копия базы данных является текущей (например, в пределах последних 24 часов).

Стандартные свойства базы данных: содержит свойства базы данных, обеспечивающие отключение автоматического сжатия и автоматического закрытия, либо правильную настройку автоматического увеличения размера, что предотвращает бесконтрольный рост базы данных, при котором она может занять все свободное место на диске.

Проверка учетных записей служб: гарантирует, что службы баз данных, такие как агент SQL Server, запускаются от имени соответствующей учетной записи службы.

Стандарты имени входа: многие производители в своих средах создают имена входа (например, двухсимвольные) для приложений. Можно создать политики, которые будут проверять этот тип создания.

Проверка sysadmin: гарантирует, что в роль сервера sysadmin назначены соответствующие элементы и отключена учетная запись sa.

Вот несколько примеров типов политик, которые можно создать. Как видите, возможности весьма широки. Но чтобы сделать это правильно, нужно сначала разобраться, в чем заключаются ваши ИТ-стандарты и рекомендации. После этого можно будет перейти к классификации и ранжированию типов политик, которые вы собираетесь развернуть.

Категория Ранг Политика Режим выполнения

Действия 1 Резервная копия базы данных является текущей

По расписанию

2 Гарантирует, что резервная копия сертификатов является текущей

По расписанию

… … …28 Обеспечивает, что папка данных По запросу

56

Page 57: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

находится на диске H:Соглашения об именах

1 Гарантирует, что имя базы данных не превышает 50 символов

По расписанию

2 Гарантирует, что имя базы данных не содержит пробелов

По расписанию

3 Гарантирует, что роли базы данных…

При изменении — запретить

… … …40 Гарантирует, что имена

хранимых процедур не содержат подстроку "foo"

По запросу

Таблица 4. Ранжирование политик по категориям

Начинать планирование стратегии в отношении политик лучше всего с разработки таблицы всех существующих и возможных политик. По этой таблице можно проверить, какие из политик уже работают. Кроме того, она поможет избавиться от ненужных политик, конфликтов и пересечений. В таблицу также можно внести новые политики и их приоритеты.

, ?Исходяиз плана какие политики нужно создатьКак говорилось выше, одна из целей создания плана политик — определиться с политиками и назначить им приоритеты. На основе этого плана можно создать свой план и провести последовательное развертывание политик.

Смысл последовательного подхода заключается в том, что так будет сразу видно, какое влияние политики оказывают на систему. Если вы начали работу с небольшого числа политик, то влияние на систему будет незначительным. Но после того как будут созданы сотни политик, одновременно запускаемых по расписанию, могут начаться конфликты из-за ресурсов при попытке найти политики, нарушающие рекомендации и ИТ-стандарты. Важную роль играет ранжирование политик — оно определяет, какие из них должны быть развернуты первыми.

Определение режима выполнения дляполитикДля каждой из политик в определенном выше плане нужно определить тип применения. Многие из политик будут периодически запускаться по расписанию и проверять систему на наличие нарушений. Не забывайте, что запуск проверки политик создает дополнительную нагрузку на серверы. При каждом изменении политики необходимо проверять, каким образом это изменение отразится на производительности системы.

Таким образом, нужно разделить политики, которые действительно требуют проверки по расписанию, и политики, которые можно выполнять по запросу. Например, имеет смысл периодически проверять, что резервные копии базы данных и ключа сертификата являются свежими. А вот проверять, расположена ли папка данных SQL Server на диске H:, вероятно, можно и по требованию. В то же время пользователь

57

Page 58: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

может попытаться создать недопустимую роль в базе данных — в этом случае можно создать политику, которая не даст ему даже произвести это изменение. Либо, если нужно позволить ему сделать это изменение, можно потребовать внесения этого изменения в журнал (т. е. выбрать режим При изменении — записать в журнал), чтобы можно было хотя бы проконтролировать это.

На иллюстрации Error: Reference source not found показаны различные режимы выполнения, которые зависят от аспекта политики. В таблице перечислены следующие режимы выполнения: проверка «При изменении — запретить» (CoC: Prevent), проверка «При изменении — записать в журнал» (CoC: Log) и проверка «По расписанию» (CoS). Дополнительные сведения о том, какие из режимов выполнения применимы к каждому из аспектов, см. в разделе Управление на основе политик SQL Server: аспекты.

Имя аспекта CoC: Prevent

CoC: Log

CoS

Роль приложения X X XАсимметричный ключ X X XАудит     XУстройство резервного копирования

    X

Приоритет компонента Service Broker

    X

Служба компонента Service Broker

    X

Сертификат     XУчетные данные     XПоставщик услуг криптографии

    X

Файл данных     XБаза данных     XСпецификация аудита базы данных

    X

Триггер DDL базы данных     XОбслуживание базы данных

    X

Параметр базы данных   X XПроизводительность базы данных

    X

Роль базы данных X X XБезопасность базы данных

    X

Значение по умолчанию     XКонечная точка X X XФайловая группа     XПолнотекстовый каталог     X

58

Page 59: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Полнотекстовый индекс     XПолнотекстовый список стоп-слов

    X

Индекс     XСвязанный сервер     XФайл журнала     XИмя входа     XПараметры имени входа X X XТип сообщений     XМногочастное имя X X XИмя     XФункция секционирования     XСхема секционирования     XСтруктура плана     XПривязка удаленной службы

    X

Регулятор ресурсов     XПул ресурсов X X XПравило     XСхема X X XСервер     XАудит сервера     XСпецификация аудита сервера

    X

Конфигурация сервера   X XСерверный триггер DDL     XИнформация о сервере     XПроизводительность сервера

    X

Безопасность сервера     XПараметры сервера     XУстановка сервера     XКонтракт службы     XОчередь обслуживания     XМаршрут службы     XСтатистика     XХранимая процедура X X XКонтактная зона   X XКонтактная зона для AS      Контактная зона для RS      Симметричный ключ     XСиноним     XТаблица     XПараметры таблицы X X X

59

Page 60: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Триггер     XПользователь     XОпределяемое пользователем статистическое выражение

    X

Определяемый пользователем тип данных

    X

Определяемая пользователем функция

X X X

Определяемый пользователем табличный тип

    X

Определяемый пользователем тип

    X

Параметры пользователя X X XПредставление     XПараметры представления

X X X

Группа рабочей нагрузки X X XКоллекция схем XML     X

Таблица 5. Поддержка аспектов для типов выполнения

KPI Использование управления на основе политик для реализации иKRIКлючевые индикаторы производительности (KPI) и рисков (KRI) используются многими бизнесменами для отслеживания показателей работы предприятия. Управление на основе политик может быть использовано для создания KPI и KRI для базы данных SQL Server. Сначала создается категория PBM, представляющая набор KPI и KRI, которые нужно создать. Затем создается набор политик, которые могут быть использованы для проверки, находятся ли KPI и KRI в диапазоне приемлемых значений. Справку по созданию политик PBM см. в этом руководстве.

60

Page 61: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Управление на основе политик предусматривает аспекты для создания KPI, такие как «Производительность базы данных», «Производительность сервера», «Пул ресурсов» и «Структура плана». После того как политики будут созданы, убедитесь в том, что за ними правильно ведется наблюдение, и вы получите предупреждение, если значения выйдут за пределы нормального рабочего диапазона.

Использование управления на основе политик дляпроверки конфигурации аудита

Управление на основе политик может быть использовано для проверки правильности параметров аудита на серверах. Политика может проверить, существует ли спецификация аудита базы данных и сервера, и включена ли она.

Примечание.Как указано в разделе Аудит конфиденциальных операций выше, существуют разные уровни конфиденциальности, и при этом выполнение аудита нужно не для всех объектов и пользователей. Поэтому в плане политик нужно учесть, что некоторые политики будут применимы только к некоторым системам и совершенно неприменимы к другим. Например, для серверов, где хранятся закрытые личные данные, аудит должен быть включен для того, чтобы можно было отследить любое действие. Но для серверов, где хранится только общая информация, аудит может потребоваться только для действий пользователя sysadmin. В последнем случае можно обойтись и без политики, которая отслеживает все действия, поскольку такая информация вряд ли когда-нибудь окажется полезной.

Использование управления на основе политик дляпроверки конфигурациишифрования

Создание политик для проверки активности шифрования — еще один хороший способ слежения за работоспособностью системы. Как и в случае с аудитом, политики могут оказаться применимыми не ко всем имеющимся серверам. Серверы, содержащие личные данные, требуют шифрования и наличия политик для проверки их активности, но для серверов, где хранится общая несекретная информация, не нужно ни шифрование, ни политики. Некоторые области применения политик перечислены далее.

Проверка активности прозрачного шифрования данных (TDE) для баз данных, где оно требуется (эту проверку следует выполнять только для баз данных, содержащих личные данные).

Проверка шифрования резервных копий базы данных. Проверка периодической смены ключей шифрования (например, раз в месяц). Проверка резервного копирования ключей. Проверка хранения резервных копий ключей в некотором централизованном

месте. Ограничение доступа к ключам шифрования.

61

Page 62: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Развертывание политикСуществуют различные способы развертывания политик на нескольких серверах. Один из методов — центральный сервер управления, который содержит все политики и экспортирует их в общую папку в виде файлов.

Рис. 28. Экспорт политики

Когда нужно импортировать политику, в среде SQL Server Management Studio можно в средстве просмотра «Зарегистрированные серверы» импортировать политики для всей группы, как показано на иллюстрации Error: Reference source not found.

Рис. 29. Импорт политики

62

Page 63: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Можно также программным способом запустить сценарий Windows PowerShell™, выполняющий развертывание политик, как показано в разделе Развертывание политик PBM с помощью PowerShell.

Создание отчетов управленияна основе политикЕсли используется инфраструктура создания отчетов аудита, то рекомендуется также организовать единую центральную точку, в которой можно следить за состоянием работоспособности и выполнением политик на всех серверах. Таким образом вы сможете выполнять аудит и наблюдать за работоспособностью своей серверной среды из одного центрального местоположения.

Рис. 30. Централизованный сбор информации о политиках

63

Page 64: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

SQLAudit Central Server

Server 1

Server 2

Server nPolicy Extract

Extract Policy Data

Obtain Server List

Load Policy Data

View

Reports

Extract Logs to

fileshare

Как показано на иллюстрации Error: Reference source not found, центральный сервер SQLAudit можно использовать в качестве маршрутизатора для сбора информации о политиках. Процесс (показан сценарий PowerShell) сначала получает список серверов, которые производят доступ к данным о политиках. Затем производится извлечение данных из нужных таблиц и помещение их в общую папку. Затем эти данные можно загрузить на центральный сервер SQLAudit, чтобы можно было строить отчеты.

64

Page 65: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Просмотр всех политикКак видно из отчета на иллюстрации Error: Reference source not found, можно просмотреть информацию обо всех политиках, существующих на всех экземплярах сервера, включая режим выполнения, аспекты, политики и условия.

Рис. 31. Отчет о политиках PBM

Здесь можно выполнить детализацию углублением, например если нужно просмотреть данные по параметру «Выполненные политики» из отчета «Проверочная политика с большим количеством нарушений» для экземпляра сервера с именем Caregroup за 18.06.2008.

Рис. 32. Отчет «Управление на основе политик — подробности»

65

Page 66: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Обратите внимание, что на иллюстрации Error: Reference source not found видно, что отчет о выполнении политик содержит только ошибки. Причина этого заключается в том, что по умолчанию управление на основе политик регистрирует только ошибочные события. Чтобы регистрировались и ошибочные, и успешные события, в свойствах управления на основе политик установите для параметра LogOnSuccess значение True, как показано на иллюстрации Error: Reference source not found. Параметр LogOnSuccess определяет, включаются ли в журнал управления на основе политик успешно выполненные политики. Рис. 33. Свойства управления политиками —

66

Page 67: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Полезные советыи сценарииВ этом разделе содержится ряд полезных советов и сценариев, которые могут оказать неоценимую помощь в разработке решений по обеспечению соответствия требованиям в составе коммерческих или внутренних приложений компании. Все эти сценарии включены в состав пакета SDK соответствия стандартам. Там, где это применимо, имена файлов, в которых содержатся сценарии, указаны в заголовке.

SQL ServerПрограммныеинтерфейсыSQL Server предусматривает несколько программных интерфейсов. В этом разделе содержатся общие сведения о трех из них, которые используются в разделе: управляющие объекты SQL Server (SMO), Transact-SQL и Windows PowerShell.

SMOУправляющие объекты SQL Server (SMO) представляют собой набор объектов, предназначенных для программирования всех аспектов управления Microsoft SQL Server. Объекты SMO можно использовать для создания специализированных приложений SQL Server. Объектная модель SMO расширяет и заменяет объектную модель DMO. По сравнению с моделью объектов SQL-DMO модель SMO повышает производительность, управляемость и облегчает использование. Почти все функциональные возможности SQL-DMO включены в модель объектов SMO, и, кроме того, в этой модели реализованы различные новые классы, поддерживающие новые возможности в SQL Server.

Transact-SQLTransact-SQL — это традиционный язык взаимодействия с SQL Server. Все приложения, взаимодействующие с экземпляром SQL Server, независимо от их пользовательского интерфейса отправляют серверу инструкции Transact-SQL. Если разработчик собирается создавать приложение базы данных, то он должен хорошо владеть этим языком.

Windows PowerShellWindows PowerShell — это оболочка командной строки и язык сценариев, который значительно повышает производительность труда ИТ-специалиста. Этот язык сценариев, рассчитанный специально на администраторов, предоставляет в их распоряжение согласованный синтаксис, более 130 стандартных программ командной строки и служебных программ. Windows PowerShell позволяет ИТ-специалистам с большей эффективностью администрировать системы и автоматизировать повторяющиеся задачи. Теперь Windows PowerShell включен в состав Windows Server 2008. Чтобы быстро начать создавать сценарии, см. Краткий справочник по Windows PowerShell.

Некоторые из примеров в этом разделе написаны в виде сценариев PowerShell. Сведения об использовании PowerShell совместно с SQL Server см. здесь. Можно также просмотреть видео, содержащее советы по использованию PowerShell в SQL Server.

67

Page 68: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Примечание.На первый взгляд запуск сценариев PowerShell может показаться непростым. Во-первых, для выхода в PowerShell нужно запускать SQLPS, а не POWERSHELL. Если нужна дополнительная справка, ознакомьтесь с разделом Запуск сценариев Windows PowerShell.

68

Page 69: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

VBScriptMicrosoft Visual Basic® Scripting Edition (VBScript) реализует активные сценарии на множестве платформ, в том числе на веб-клиенте в обозревателе Microsoft Internet Explorer® и веб-сервере на службах Microsoft IIS. VBScript позволяет создавать приложения для работы с SQL Server. Репозиторий сценариев, содержащий десятки примеров для SQL Server, см. по адресу Хранилище сценариев: SQL Server.

Windows DACКомпонентыдоступа к даннымКомпоненты Windows DAC представляют собой набор технологий, реализующих доступ к информации в масштабах всего предприятия. В число этих технологий входят объекты данных ActiveX® (ADO), OLE DB и интерфейс ODBC. Управляемые данными клиент-серверные приложения развертываются в Интернете или в локальной сети и могут использовать эти компоненты для интеграции информации из базы данных SQL Server.

69

Page 70: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

(Server Security Проверка параметров безопасностиPolicy.xml)В разделе Использование проверки подлинности Windows обсуждается важность использования режима проверки подлинности Windows при проверке подлинности сервера. Это можно сделать вручную в среде SQL Server Management Studio, выбрав нужный режим на странице Безопасность в окне Свойства сервера, как показано на иллюстрации Error: Reference source not found. Для наблюдения за этими параметрами может быть использовано управление на основе политик. Пример того, как это сделать, см. в файле Server Security Policy.xml.

Рис. 34. Свойства безопасности сервера

70

Page 71: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Проверка подлинности Windows — один из примеров параметров безопасности, которые служат для ограничения доступа к конфиденциальным данным. Управление на основе политик позволяет администраторам баз данных создавать политики, обеспечивающие наличие и неизменность параметров безопасности (и других параметров). В общем случае создать политику для параметров объекта не сложнее, чем щелкнуть правой кнопкой мыши этот объект и выбрать пункт Аспект. На иллюстрации Error: Reference source not found показан пример доступа к меню Аспекты по щелчку объекта правой кнопкой мыши.

Рис. 35. Выбор аспектов для объекта сервера

71

Page 72: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

В диалоговом окне Просмотр аспектов, показанном на иллюстрации Error: Reference source not found, представлены все доступные аспекты для выбранного объекта вместе с их значениями.

Рис. 36. Диалоговое окно аспектов сервера управления на основе политик

(SOD Управление разграничением обязанностейPolicy.xml)Файл политик SOD Policy.xml обеспечивает переименование и отключение учетной записи sa. Он следит за тем, чтобы только определенные учетные записи служб и пользователей можно было добавить в роль sysadmin. Он гарантирует, что пользователю может быть назначена только одна роль. В оставшейся части этого раздела показано, как выполнять эти функции вручную. Эта политика содержит два сценария, которые показывают гибкость выражений управления на основе политик.

72

Page 73: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Примечание.Когда сценарий входит в условие политики, в диалоговом окне Вычисление политик рядом с политикой появляется значок предупреждения и сообщение в верхней части окна, как показано на иллюстрации Error: Reference source not found. Включение этих сценариев также препятствует автоматическому вычислению политик из среды SQL Server Management Studio. Однако после нажатия кнопки Вычислить вычисление будет разрешено.

Рис. 37. Политики со сценариями, выделенные в диалоговом окне Вычисление политик

Использование сценариев в условияхОдним из наиболее эффективных способов задания условий для управления на основе политик являются сценарии. Ниже приведен один из таких сценариев, используемый в условии «Проверка ролей» для политики разграничения обязанностей.

IsNull(ExecuteSql('Numeric', 'SELECT COUNT(DISTINCT name) FROM sys.server_role_members, sys.server_principals WHERE principal_id = member_principal_id AND role_principal_id IN (SUSER_ID (''sysadmin''), SUSER_ID (''bulkadmin''), SUSER_ID (''securityadmin'')) GROUP BY name HAVING COUNT(member_principal_id)> 1 '), 0)

Функция ExecuteSQL позволяет внедрить инструкцию SELECT в выражение управления на основе политик. Эта инструкция SELECT определяет, является ли пользователь членом более чем одной роли безопасности из заданного списка. Если да, то возвращается значение больше нуля, что приводит к невыполнению условия. Список ролей может быть изменен при необходимости. Имена ролей заключаются в двойные апострофы, поскольку инструкция SELECT сама по себе внедряется в

73

Page 74: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

апострофы. Функция IsNull возвращает числовой результат в том случае, если в результирующем наборе попадется значение NULL.

74

Page 75: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

sysadmin (ManageSA.sql)Отключение всех учетных записейОтключение всех учетных записей роли sysadmin — это надежный способ заблокировать доступ к данным привилегированным пользователям, которые не должны их видеть. В обычных условиях отключение всех учетных записей sysadmin не подходит, поскольку только sysadmin может повторно включить эту учетную запись. В этом случае нужно будет остановить базу данных, перевести ее в однопользовательский режим и повторно включить учетную запись sysadmin. Следующий код показывает, как отключить все учетные записи sysadmin.

USE masterGO

CREATE PROCEDURE sp_DisableSA ASIF (DB_ID() = 1)BEGIN DECLARE @cmd nvarchar(max)

○ -- SID 0x01 всегда равен "sa" SET @cmd = N'ALTER LOGIN ' + QUOTENAME(SUSER_NAME(0x01)) + N' DISABLE' EXEC ( @cmd )ENDELSEBEGIN RAISERROR ('sp_DisableSA is only valid when hosted in master DB', -- Текст сообщения. 16, -- Серьезность. 1 -- Состояние. );ENDGO

CREATE PROCEDURE sp_EnableSA ASIF (DB_ID() = 1)BEGIN DECLARE @cmd nvarchar(max)

○ -- SID 0x01 всегда равен "sa" SET @cmd = N'ALTER LOGIN ' + QUOTENAME(SUSER_NAME(0x01)) + N' ENABLE' EXEC ( @cmd )ENDELSEBEGIN RAISERROR ('sp_EnableSA is only valid when hosted in master DB', -- Текст сообщения. 16, -- Серьезность. 1 -- Состояние. );ENDGO

-- Создать сертификат для подписи хранимой процедуры

75

Page 76: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

CREATE CERTIFICATE SACert WITH SUBJECT = 'For signing stored procedures'GO

-- Разрешить вход для выполнения хранимой процедурыGRANT EXECUTE ON sp_DisableSA TO [SQLVM03-18158EA\Pat];

-- Подписать хранимую процедуруADD SIGNATURE TO sp_DisableSA BY CERTIFICATE SACert;

-- Создать имя входа на основе сертификатаCREATE LOGIN [CertLogin] FROM CERTIFICATE SACert;

-- Добавить имя входа в роль sysadmin, чтобы хранимая процедура-- могла отключить учетную запись saEXEC sp_addsrvrolemember [CertLogin], N'sysadmin';

-- Удалить закрытый ключ, чтобы хранимую процедуру нельзя было повторно подписатьALTER CERTIFICATE [SACert] REMOVE PRIVATE KEY;

-- Изменить спецификацию аудита сервера для отслеживания использования -- хранимой процедуры. Обеспечивает отключение спецификации аудита-- перед запуском команды ALTERALTER SERVER AUDIT SPECIFICATION [Audit Login Changes] WITH (STATE = OFF)GO

ALTER SERVER AUDIT SPECIFICATION [Audit Login Changes]ADD (SERVER_PRINCIPAL_CHANGE_GROUP)GO

ALTER SERVER AUDIT SPECIFICATION [Audit Login Changes] WITH (STATE = ON)GO

sa (ValidateSA.sql)Проверка учетной записиУсловие «Проверка ролей» может служить для проверки переименования или отключения учетной записи sa. В следующем сценарии показано, как это сделать вручную.

IF (SELECT COUNT(*) FROM sys.server_principals WHERE = principal_id 1 AND is_disabled = 1 AND name != 'sa') = 1 PRINT 'Compliant'ELSE PRINT 'Non-compliant'

76

Page 77: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

sysadmin (ValidateSysadmins.sql)Проверка членства в ролиУсловие «Проверка ролей» в файле SOD Policy.xml может служить для проверки того, что только определенные пользователи являются членами роли sysadmin. В следующем сценарии показано, как это сделать вручную.

DECLARE @Admin1 sysnameDECLARE @Admin2 sysnameDECLARE @Admin3 sysnameDECLARE @Admin4 sysname

SET @Admin1 = @@SERVERNAME + '\Pat'SET @Admin2 = 'NT AUTHORITY\SYSTEM'SET @Admin3 = 'NT AUTHORITY\NETWORK SERVICE'SET @Admin4 = 'sa'

IF EXISTS (SELECT name FROM sys.server_role_members A, sys.server_principals B WHERE A.member_principal_id = B.principal_id AND role_principal_id = SUSER_ID('sysadmin') AND name NOT IN (@Admin1, @Admin2, @Admin3, @Admin4)) PRINT 'Non-compliant'ELSE PRINT 'Compliant'

(SOD Policy.xml)Применение разграничения ролейЭти сценарии проверяют наличие пользователя в нескольких ролях и выдают их список вместе с именами ролей. Один набор просматривает роли сервера, второй — роли базы данных.

Важно отметить, что в SQL Server отсутствует простой способ наблюдения за членством в группах безопасности Windows. Каждая организация должна создать политику для управления членством в группах безопасности. Если используются группы, то SQL Server не сможет определить, является ли пользователь членом нескольких ролей SQL Server через членство в группах.

(ValidateServerRoles.sql)Наблюдение за ролями сервераВ диалоговом окне Свойства имени входа можно просмотреть роли сервера для пользователя и определить, является ли он членом более чем одной критической роли, как показано на иллюстрации Error: Reference source not found.

Рис. 38. Диалоговое окно Свойства имени входа

77

Page 78: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Файл политик управления на основе политик SOD Policy.xml обеспечивает отслеживание ролей сервера и следит за тем, чтобы пользователю нельзя было назначить более одной роли без просмотра всех его ролей вручную. Показанный ниже сценарий выполняет ту же функцию. Если возвращается число больше нуля, то пользователь является членом нескольких ролей из заданного списка.

SELECT COUNT(*)CountFROM sys.server_role_members, sys.server_principalsWHERE principal_id = member_principal_id AND role_principal_id IN (SUSER_ID('sysadmin'), SUSER_ID ('bulkadmin'), SUSER_ID ('securityadmin')) GROUP BY member_principal_idHAVING COUNT(member_principal_id)> 1

, Получение списка пользователей входящих в несколько ролей(ValidateServerRoles.sql)В этом сценарии приведены имена пользователей, входящих в несколько ролей сервера, вместе с ролями, в которые они входят. В данном примере в сценарий включено всего три роли сервера. Число ролей и их выбор можно изменить, поскольку они не изменяются в процессе работы сценария.

SELECT A.Name, B.NAME RoleFROM sys.server_principals A, sys.server_principals B, sys.server_role_members C WHERE A.name IN (SELECT Name FROM sys.server_role_members,

78

Page 79: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

sys.server_principals WHERE principal_id = member_principal_id AND role_principal_id IN (SUSER_ID('sysadmin'), SUSER_ID ('bulkadmin'), SUSER_ID ('securityadmin')) GROUP BY member_principal_id, name HAVING COUNT(member_principal_id)> 1 ) AND A.principal_id = C.member_principal_id AND B.principal_id = C.role_principal_idORDER BY Name

79

Page 80: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

(ValidateDatabaseRoles.sql)Наблюдение за ролямибазыданныхВ диалоговом окне Пользователь базы данных можно просмотреть роли базы данных для пользователя и определить, является ли он членом более чем одной критической роли, как показано на иллюстрации Error: Reference source not found.

Рис. 39. Членство пользователя в ролях базы данных

Этот сценарий получает имена пользователей вместе с числом ролей базы данных, к которым они принадлежат. Этот сценарий возвращает пустой результирующий набор, если нет пользователей, принадлежащих нескольким ролям. В данном примере в сценарий включено всего три роли базы данных. Число ролей и их выбор можно изменить, поскольку они не изменяются в процессе работы сценария.

SELECT COUNT(member_principal_id) Count, NameFROM sys.database_role_members, sys.database_principalsWHERE principal_id = member_principal_id AND role_principal_id IN (DATABASE_PRINCIPAL_ID('db_securityadmin'), DATABASE_PRINCIPAL_ID('db_backupoperator'), DATABASE_PRINCIPAL_ID('db_datawriter')) GROUP BY member_principal_id, NameHAVING COUNT(member_principal_id)> 1

80

Page 81: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

ORDER BY Name

В этом сценарии приведены имена пользователей, входящих в несколько ролей базы данных, вместе с ролями, в которые они входят. В данном примере в сценарий включено всего три роли базы данных. Число ролей и их выбор можно изменить, поскольку они не изменяются в процессе работы сценария.

SELECT A.Name, B.Name RoleFROM sys.database_principals A, sys.database_principals B, sys.database_role_members C WHERE A.name IN (SELECT Name FROM sys.database_role_members, sys.database_principals WHERE principal_id = member_principal_id AND role_principal_id IN (DATABASE_PRINCIPAL_ID('db_securityadmin'), DATABASE_PRINCIPAL_ID('db_backupoperator'), DATABASE_PRINCIPAL_ID('db_datawriter')) GROUP BY member_principal_id, name HAVING COUNT(member_principal_id)> 1 ) AND A.principal_id = C.member_principal_id AND B.principal_id = C.role_principal_idORDER BY Name

Управление ключамишифрованияЧасто администраторы баз данных пользуются шифрованием для защиты конфиденциальных данных, а о правильности управления ключами шифрования думают в последнюю очередь. Помимо этого, в SQL Server отсутствуют развитые средства управления ключами шифрования. Этот раздел рассказывает об управлении ключами и содержит сценарии, облегчающие этот процесс.

Наблюдение за доступомкключамшифрования(AuditCryptoActions.sql)Подсистема аудита SQL Server обеспечивает наблюдение за доступом к ключам шифрования, а также к параметрам шифрования в базе данных. Наблюдение за событиями DATABASE_OBJECT_ACCESS_GROUP и DATABASE_OBJECT_CHANGE_GROUP в спецификации аудита сервера позволит обеспечить регистрацию в журнале любого доступа к ключам шифрования базы данных. Наблюдение за событиями DATABASE_CHANGE_GROUP в спецификации аудита базы данных позволит регистрировать в журнале любые изменения флажка шифрования базы данных.

Изменение спецификации аудита сервера для наблюдения за изменениями и доступом ко всем объектам базы данных не приведет к регистрации большого числа событий, поскольку таких объектов немного, а их просмотр и изменение в стабильно

81

Page 82: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

работающих базах данных выполняется нечасто. Список объектов см. в разделе Отслеживание доступа к ключам.

(ViewKeys.sql)Просмотр сертификатов и ключейСертификаты для прозрачного шифрования данных (TDE) должны создаваться в базе данных master с помощью сценария, подобного приведенному ниже. Создание главного ключа необходимо только в том случае, если оно еще не производилось. Главный ключ необходим для защиты сертификата.

USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'UseStrongPassword1!';GO

CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate for Sensitive Data'

После создания сертификата его можно просмотреть, выполнив запрос к таблице certificates в базе данных master, как показано ниже.

USE masterSELECT name, certificate_id, start_date, thumbprint, pvt_key_last_backup_dateFROM sys.certificates

На иллюстрации Error: Reference source not found показаны некоторые важные столбцы из таблицы сертификатов. Столбец start_date служит для определения необходимости повторного создания сертификата. Столбец thumbprint служит для определения баз данных, связанных с сертификатом. Он соответствует столбцу encryptor_thumbprint, описанному ниже в этом разделе. Столбец pvt_key_last_backup_date указывает, когда в последний раз производилось создание резервной копии сертификата. Если значение равно NULL, то резервная копия сертификата еще не создавалась. Резервное копирование играет весьма важную роль, поскольку при уничтожении сертификата все защищенные им резервные копии, например на лентах, становятся непригодными к использованию.

name start_date thumbprint pvt_key_last_backup_dateNewServerCert 2008-07-20 19:43:04.000 0xBF372D91C333B1E… NULLDEKCert_258 2008-07-23 04:21:40.000 0x99CF8887C56CEC9… 2008-07-23 04:50:36.553DEKCert_260 2008-07-23 04:51:55.000 0x8BFD5885501314B… 2008-07-23 04:51:56.490DEKCert_261 2008-07-25 05:11:26.000 0xC1B737DAFDCFAC… 2008-07-25 05:11:28.800

Таблица 6. Столбцы в таблице сертификатов

Ключи для прозрачного шифрования данных (TDE) должны создаваться с помощью сценария, подобного показанному ниже, прежде чем TDE можно будет включить для базы данных. Для успешного создания ключа шифрования необходимо наличие ранее созданного сертификата.

CREATE DATABASE ENCRYPTION KEYWITH ALGORITHM = AES_128

82

Page 83: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

ENCRYPTION BY SERVER CERTIFICATE DEKCert_258GO

После создания ключа его можно просмотреть, выполнив запрос к динамическому административному представлению, как показано ниже.

SELECT database_id, create_date, regenerate_date, encryptor_thumbprintFROM sys.dm_database_encryption_keys

83

Page 84: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

На иллюстрации Error: Reference source not found показаны некоторые важные столбцы из представления. Столбец database_id определяет базу данных, в которой создан ключ. Идентификатор 2 указывает на tempdb. Столбец regenerate_date указывает время последнего формирования ключа. Он будет равен значению в столбце create_date, если ключ только что создан. Служит для определения необходимости повторного создания ключа. Как говорится в разделе Смена сертификатов в сравнении со сменой ключей, лучше менять сертификат, а не ключ шифрования. Столбец encryptor_thumbprint может быть использован для определения сертификата, используемого для защиты ключа.

database_id create_date regenerate_date encryptor_thumbprint2 2008-08-20 17:46:28.110 2008-08-20 17:46:28.110 07 2008-07-01 20:27:03.983 2008-08-07 16:14:36.013 0xC1B737DAFDCFAC9C…8 2008-07-01 20:27:04.137 2008-08-07 16:14:36.103 0xC1B737DAFDCFAC9C…9 2008-07-01 20:27:32.667 2008-08-07 16:14:36.213 0xC1B737DAFDCFAC9C…

Таблица 7. Столбцы представления sys.dm_database_encryption_keys

(RotateCerts.sql)Смена сертификатовПоказанный ниже сценарий заново формирует все сертификаты в текущей базе данных. Его можно запускать только в базе данных master. Повторное формирование выполняется только для тех сертификатов, которые действуют более месяца и использовались для защиты ключа шифрования базы данных. Чтобы изменить частоту повторного создания, внесите изменения в вызов функции DATEDIFF. Идентификатор заменяемого сертификата используется в имени нового, что позволяет избежать конфликтов. После формирования нового сертификата он будет использоваться для защиты всех ключей шифрования базы данных, которые защищал предыдущий сертификат. Этот сценарий может запускаться в задании по расписанию с помощью агента SQL Server.

Примечание.Необходимо как можно скорее провести резервное копирование закрытого ключа для каждого вновь создаваемого сертификата и сохранить ее в безопасном месте. Если этого не сделать, то при утере исходного закрытого ключа это может привести к невозможности восстановления зашифрованных данных.

DECLARE @Thumbprint varbinary(32)DECLARE @CertID intDECLARE @CertName sysnameDECLARE @DB_ID intDECLARE @cmd nvarchar(max)

-- Ключевое слово INSENSITIVE предотвращает -- обработку сертификатов, созданных этим сценариемDECLARE Certificate_Cursor INSENSITIVE CURSOR FOR SELECT [thumbprint], [certificate_id] FROM sys.certificates WHERE (DATEDIFF(MONTH, [start_date], GETDATE()) > 0 ) AND [thumbprint] IN (SELECT DISTINCT encryptor_thumbprint FROM sys.dm_database_encryption_keys)

84

Page 85: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

OPEN Certificate_Cursor;FETCH NEXT FROM Certificate_Cursor INTO @Thumbprint, @CertID; WHILE @@FETCH_STATUS = 0BEGIN SET @CertName = 'DEKCert' + '_' + LTRIM(STR(@CertID)); SET @cmd = N'CREATE CERTIFICATE ' + QUOTENAME(@CertName) + N' WITH SUBJECT = ''DEK Certificate''' EXEC( @cmd )

DECLARE Database_Cursor CURSOR FOR SELECT [database_id] FROM sys.dm_database_encryption_keys WHERE [encryptor_thumbprint] = @Thumbprint OPEN Database_Cursor; FETCH NEXT FROM Database_Cursor INTO @DB_ID;

WHILE @@FETCH_STATUS = 0 BEGIN SET @cmd = N'USE ' + QUOTENAME(DB_NAME(@DB_ID)) + ';' + N'ALTER DATABASE ENCRYPTION KEY ' + N'ENCRYPTION BY SERVER CERTIFICATE ' + QUOTENAME(@CertName) EXEC (@cmd); FETCH NEXT FROM Database_Cursor INTO @DB_ID; END CLOSE Database_Cursor; DEALLOCATE Database_Cursor; FETCH NEXT FROM Certificate_Cursor INTO @Thumbprint, @CertID;ENDCLOSE Certificate_Cursor;DEALLOCATE Certificate_Cursor;

Примечание. Этот сценарий завершится ошибкой, если его запустить более чем дважды без создания резервной копии журнала.

Создание резервной копии закрытого ключа сертификата(BackupCerts.sql)Этот сценарий просматривает все сертификаты, используемые для защиты ключа шифрования базы данных, для которых не создана резервная копия (столбец pvt_key_last_backup_date равен NULL), и проводит их резервное копирование в файл в каталоге C:\certificates, используя сертификат в качестве имени файла с расширением CRT. Резервная копия закрытого ключа помещается в тот же каталог с расширением PVT. После создания резервной копии сертификата закрытый ключ необходимо немедленно сохранить в защищенном месте или в базе данных, а файл удалить.

Примечание.Нельзя проводить резервное копирование сертификата автоматически с помощью сценария вроде этого, если только создание пароля не производится

85

Page 86: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

безопасным способом. Раскрытие пароля в сценарии делает закрытый ключ уязвимым для доступа. Файл должен быть сохранен в безопасном месте или удален сразу же после импорта в базу данных-получатель. Не используйте один и тот же пароль более одного раза.

DECLARE @CertName sysnameDECLARE @cmd nvarchar(max)

DECLARE Cert_Cursor CURSOR FOR SELECT [name] FROM sys.certificates WHERE [pvt_key_last_backup_date] IS NULL AND [thumbprint] IN (SELECT DISTINCT [encryptor_thumbprint] FROM sys.dm_database_encryption_keys)

OPEN Cert_Cursor; FETCH NEXT FROM Cert_Cursor INTO @CertName;

WHILE @@FETCH_STATUS = 0 BEGIN SET @cmd =

N'BACKUP CERTIFICATE ' + QUOTENAME(@CertName) + N' TO FILE = ''c:\certificates\' + @CertName + N'.crt'' WITH PRIVATE KEY ( FILE = ''c:\certificates\' + @CertName + N'.pvk'', ENCRYPTION BY PASSWORD = ''MyPass7779311#'');'

EXEC ( @cmd ) FETCH NEXT FROM Cert_Cursor INTO @CertName; END CLOSE Cert_Cursor;DEALLOCATE Cert_Cursor;

Обеспечение сменыирезервного копирования пароля(CertRotationPolicy.xml)Управление на основе политик может быть использовано для контроля смены сертификатов и ключей в соответствии с политиками. Кроме того, оно позволяет обеспечить резервное копирование закрытых ключей сертификатов. Политика PBM в файле CetRotationPolicy.xml содержит условие с тремя сценарными выражениями, которые могут быть использованы для контроля ежемесячной смены сертификатов и ключей, а также резервного копирования закрытых ключей сертификатов.

Управление аудитомПосле того как журналы аудита собраны с помощью подсистемы аудита SQL Server, может потребоваться их обработка для выполнения анализа трендов и использования в суде. В этом разделе рассматриваются способы получения большей отдачи от журналов после их получения.

86

Page 87: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

SQL Server Передачажурналов подсистемыаудита в таблицу(StoreAuditLogs.sql)Журналы, полученные из нескольких систем, можно собрать в центральной общей папке, как показано на иллюстрации Error: Reference source not found. Чтобы сделать проще создание отчетов на основе журналов, их можно переместить в таблицу базы данных. Можно с помощью служб SQL Server Integration Services (SSIS) создать пакет, запускаемый по расписанию. Журналы можно перемещать как вручную, так и с помощью сценария. После перемещения журналов в таблицу ее можно открыть с помощью Microsoft Excel® для создания графиков и выполнения анализа трендов. Все эти методики описаны в этом разделе.

Рис. 40. Передача журналов аудита в таблицу базы данных

Этот сценарий перемещает события из файла журнала подсистемы аудита SQL Server в таблицу базы данных, чтобы сделать проще построение отчетов. Это также позволит исключить возможность перезаписи этого файла системным администратором одного из серверов, которые отправляют события. Для этого необходимо учитывать два момента.

87

Page 88: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Подсистема аудита SQL Server сохраняет в файле журнала только коды операций и типов объектов. Поэтому сценарий выполняет соединение по таблицам действий и объектов, чтобы включить в результат их описание, а затем сохраняет его в таблице базы данных.

Имя последнего считанного файла вместе со смещением в этом файле загружается в локальные переменные и используется при считывании данных, чтобы исключить повторную загрузку одних и тех же файлов.

USE [Test1]GO

DECLARE @data_path nvarchar(256), @offset int

SET @data_path = NULLSET @offset = NULL IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[AuditLog]') AND type in (N'U')) CREATE TABLE [dbo].[AuditLog](

[event_time] [datetime2](7) NULL,[sequence_number] [int] NULL,[action_id] [varchar](4) NULL,[action_name] [nvarchar](128) NULL,[succeeded] [bit] NULL,[permission_bitmask] [bigint] NULL,[is_column_permission] [bit] NULL,[session_id] [smallint] NULL,[server_principal_id] [int] NULL,[database_principal_id] [int] NULL,[target_server_principal_id] [int] NULL,[target_database_principal_id] [int] NULL,[object_id] [int] NULL,[class_type] [varchar](2) NULL,[class_type_desc] [nvarchar](35) NULL,[session_server_principal_name] [nvarchar](128) NULL,[server_principal_name] [nvarchar](128) NULL,[server_principal_sid] [binary](85) NULL,[database_principal_name] [nvarchar](128) NULL,[target_server_principal_name] [nvarchar](128) NULL,[target_server_principal_sid] [binary](85) NULL,[target_database_principal_name] [nvarchar](128) NULL,[server_instance_name] [nvarchar](128) NULL,[database_name] [nvarchar](128) NULL,[schema_name] [nvarchar](128) NULL,[object_name] [nvarchar](128) NULL,[statement] [nvarchar](2000) NULL,[additional_information] [nvarchar](2000) NULL,[file_name] [nvarchar](260) NULL,[audit_file_offset] [bigint] NULL

) ON [PRIMARY]

-- Получить время и смещение последней записи журналаSELECT @data_path = file_name, @offset = audit_file_offset

88

Page 89: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

FROM AUDITLOGWHERE event_time = (select MAX(event_time)FROM AUDITLOG)

INSERT INTO [Test1].[dbo].[AuditLog] ([action_name] ,[class_type_desc] ,[event_time] ,[sequence_number] ,[action_id] ,[succeeded] ,[permission_bitmask] ,[is_column_permission] ,[session_id] ,[server_principal_id] ,[database_principal_id] ,[target_server_principal_id] ,[target_database_principal_id] ,[object_id] ,[class_type] ,[session_server_principal_name] ,[server_principal_name] ,[server_principal_sid] ,[database_principal_name] ,[target_server_principal_name] ,[target_server_principal_sid] ,[target_database_principal_name] ,[server_instance_name] ,[database_name] ,[schema_name] ,[object_name] ,[statement] ,[additional_information] ,[file_name] ,[audit_file_offset])

SELECT name, class_type_desc, C.* FROM sys.dm_audit_actions A, sys.dm_audit_class_type_map B, sys.fn_get_audit_file('C:\logs\*', @data_path, @offset) CWHERE A.action_id = C.action_id AND B.class_type = C.class_type

89

Page 90: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

SSIS Использование служб для переносажурналов в таблицу (LoadLogsPackage.dtsx)базыданных

Как говорилось в предыдущем разделе и было показано на иллюстрации Error: Reference source not found, для преобразования и передачи данных можно воспользоваться службами SQL Server Integration Services (SSIS). На иллюстрации Error: Reference source not found показаны задачи из проекта SSIS для перемещения данных из файла аудита SQL Server в таблицу базы данных. Первая задача создает таблицу аудита, если она не существует. Вторая задача выполняет передачу данных.

Рис. 41. Две задачи служб SSIS для сбора журналов аудита

90

Page 91: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

На иллюстрации Error: Reference source not found подробно показана задача для передачи данных. Необработанные данные журнала считываются из файла подсистемы аудита SQL Server. Из таблицы действий производится получение названия действия. Затем поток данных объединяется с таблицей класса, чтобы получить описание типа класса. Полученные в результате объединения данные помещаются в таблицу аудита.

Рис. 42. Задачи для объединения данных аудита и их сохранения в таблице

91

Page 92: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Службы SSIS сохраняют выходные данные в пакете, который можно загрузить в шаг задания с помощью агента SQL Server, как показано на иллюстрации Error: Reference source not found. Это позволяет автоматизировать передачу данных. Перемещение данных из файла журнала в локальную базу данных ограничивает круг лиц, имеющих к ним доступ, до администраторов. Этот вопрос необходимо обсудить с аудиторами, поскольку некоторые из них озабочены тем, что в журналы легко внести изменения. Файл CreateAuditJob.sql создает задание аудита, которое запускается каждые пять минут из файла пакета LoadLogsPackage.dtsx, который должен находиться в каталоге C:\.

Рис. 43. Пакет служб SSIS, загруженный в агент SQL Server

92

Page 93: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

SQL Server Доступ к событиямподсистемыаудита с помощьюExcel (AuditReport.xlsx)После того как данные сохранены в таблице базы данных, можно импортировать их в книгу Excel. То же относится и к журналам подсистемы аудита SQL Server. Excel реализует привычные механизмы анализа данных, представленных в виде таблиц. На иллюстрации Error: Reference source not found показано, как выглядит таблица подсистемы аудита SQL Server, описанная в предыдущем разделе, после импорта в Excel через ленту «Данные». Чтобы ограничить результат по датам, действиям, объектам и пользователям, можно воспользоваться фильтрами.

Рис. 44. Журналы подсистемы аудита SQL Server после загрузки в Excel

93

Page 94: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

На основе данных в Excel можно создать динамическое представление PivotTable® с помощью ленты Вставка. На иллюстрации Error: Reference source not found показан пример представления PivotTable, созданного на основе табличных данных аудита. В PivotTable включаются следующие поля: действие, тип класса и имя участника-службы сервера. Созданная для PivotTable линейчатая диаграмма показывает по типам количество действий, выполненных для определенных объектов пользователем с указанным идентификатором. Список полей в PivotTable определяет поля, включаемые в диаграмму, и способ их использования.

Рис. 45. Представление PivotTable, сформированное на основе журналов подсистемы аудита SQL Server

94

Page 95: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

IP- Получение адреса изжурнала аудитаПри просмотре журналов аудита поле server_principal_name может служить для определения идентификатора пользователя, выполнившего зарегистрированную операцию, там где это возможно. Однако если для соединения с базой данных используется учетная запись SQL Server, а не учетная запись Windows, то поле server_principal_name не содержит полезной информации, которая позволила бы просто определить лицо, выполнявшее операцию. Однако в журнале имеются данные, которые могут помочь в определении идентификатора пользователя. Каждая запись журнала содержит поле session_id. Это поле поставлено в соответствие идентификатору, назначенному пользователю при входе в систему. В самой первой записи журнала (с идентификатором действия LGIS), имеющей этот идентификатор ID, поле additional_information будет содержать IP-адрес компьютера, который подключается к базе данных. По журналам на этом компьютере можно выяснить, кто работал на нем в это время. Ниже приведен сценарий для получения IP-адреса из поля server_principal_name.

SELECT event_time, statement, CAST(additional_information AS XML).value('declare namespace z="http://schemas.microsoft.com/sqlserver/2008/sqlaudit_data"; (//z:address)[1]', 'nvarchar(300)') FROM sys.fn_get_audit_file('C:\logs\*',Null, Null)WHERE action_id = 'LGIS' ORDER BY event_time DESC

95

Page 96: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Проект аудитаЭтот проект является совместной работой Айяда Шаммута (Ayad Shammout) (Caregroup Healthcare), Энди Робертса (Andy Roberts) (Microsoft Consulting Services) и Денни Ли (Denny Lee) (SQL Customer Advisory Team). Целью этого проекта было создание работающего шаблона для комплексного проекта аудита, способного получать журналы, преобразовывать и загружать данные, выполнять их статистическую обработку и строить отчеты. Дополнительные сведения см. в разделе Технический обзор проекта аудита (готовится к публикации).

Рис. 46. Рабочий поток для решения с проектом аудита

Загрузите решениеРаспакуйте файл SQLAudit.zip. Он должен содержать следующие файлы:

SQLAuditRepositoryDatabase.sql — SQL-файл, который создает базу данных SQLAudit

LoadLogsPackage.dtsx — пакет служб SSIS, который выполняет задачу по получению, извлечению, преобразованию и загрузке данных аудита, а затем архивирует файл журнала

SQLAuditReports — решение служб SQL Server Reporting Services (SSRS), которое можно развернуть на своем сервере для просмотра отчетов аудита

96

Page 97: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Создайте базу данных SQLAuditЭта база данных будет служить хранилищем данных аудита.

1. Откройте файл SQLAuditRepositoryDatabase.sql в среде SQL Server Management Studio и включите режим SQLCMD (в меню Запрос выберите режим SQLCMD). На то, что включен режим SQLCMD, указывают закрашенные серым строки :setvar.

2. Определите следующие переменные. Переменная Описание Комментарии

DataDirectory Папка данных базы данных SQL Server (например, H:\sqldata\)

Обязательно завершайте путь обратной косой чертой «\».

LogDirectory Папка журналов базы данных SQL Server (например, H:\sqllog\)

Обязательно завершайте путь обратной косой чертой «\».

DatabaseName

Имя базы данных (например, SQLAudit)

Нет.

3. Выполните сценарий. Создается база данных.

Установите пакет LoadLogsPackageSSISБудут созданы файлы конфигурации, необходимые для выполнения пакета служб SSIS.

1. Дважды щелкните SQLAuditLoader.SSISDeploymentManifest. Если с этим файлом не связана никакая программа, запустите файл C:\program files\Microsoft SQL Server\100\DTS\Binn\dtsinstall.exe, чтобы открыть мастер установки пакета. Дополнительные сведения об установке пакетов см. в разделе http://msdn.microsoft.com/ru-ru/library/ms365321(SQL.100).aspx.

2. Нажмите кнопку Далее, щелкните Установить в файловую систему и снова нажмите Далее. Выберите папку установки, например C:\Program Files\Microsoft SQL Server\100\DTS\Packages\SQLAuditLoader, нажмите кнопку Далее, а затем снова кнопку Далее.

3. Настройте следующие свойства пакета.

Параметр Пример значения

Регистратор служб SSIS для SQL Server

SqlAuditLogRepository

97

Page 98: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

SqlAuditLogRepositoryУкажите имя базы данных SQLAudit (например, SQLAudit)

Data Source=.;Initial Catalog=$DBName$;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-Package-{21C9032A-E45A-41F2-BA67-9EF35FCD18C3}SqlAuditLogRepository;

User:auditLogArchivePathМестоположение, в которое будет производиться архивирование после обработки

D:\audit\logs\archive

User:LogFilePathРасположение журналов аудита

D:\Audit\logs

Эти значения будут сохранены в файле LoadLogsPackageConfig.dtsConfig. Если их необходимо изменить после установки пакета служб SSIS, то это можно сделать вручную в этом файле.

Примечание. Эта версия проекта аудита подразумевает, что каталог, из которого производится получение файлов аудита, является локальным.

4. Нажмите кнопку Далее, а затем кнопку Завершить.

Выполните пакет служб SSISПри выполнении пакета подразумевается, что в папке D:\audit\logs находятся файлы аудита (как указано выше) и после обработки они будут перемещены в папку D:\audit\logs\archive.

1. В командной строке перейдите в каталог SQLAuditLoader (например, C:\Program Files\Microsoft SQL Server\100\DTS\Packages\SQLAuditLoader).

2. Выполните команду:dtexec /ConfigFile LoadLogsPackageConfig.dtsConfig /File LoadLogsPackage.dtsx

Примечание.Убедитесь в том, что используется версия DTExec из поставки SQL Server 2008. На сервере, где установлено несколько экземпляров SQL Server 2005 и SQL Server 2008, может запуститься версия DTExec для SQL Server 2005 (9.00.xxxx), а не для SQL Server 2008 (10.00.xxxx). Чтобы избежать этого, нужно указать полный путь к программе DTExec (например, C:\Program Files\Microsoft SQL Server\100\DTS\Binn\dtexec.exe).

Поскольку файлы журналов аудита формируются постоянно, рекомендуется запускать этот пакет служб SSIS периодически (например, раз в 15 минут), чтобы обеспечить своевременную загрузку данных.

98

Page 99: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Формирование статистических отчетовПакет служб SSIS обрабатывает журналы аудита и загружает их в таблицы aud.AuditLog_[тип события] в базе данных SQLAudit. Но поскольку в них содержится множество событий, удобнее создавать статистические (т. е. сводные) отчеты, которые содержат обобщенную картину по аудиту.

Для этого в среде SQL Server Management Studio подключитесь к базе данных SQLAudit и выполните следующие команды.exec aud.rspAggServerActions @EventDate = '08/22/2008'exec aud.rspAggDatabaseActions @EventDate = '08/22/2008'exec aud.rspAggDMLActions @EventDate = '08/22/2008'exec aud.rspAggDDLActions @EventDate = '08/22/2008'

В результате этого в таблицы aud.rptAgg[событие аудита]Actions будет загружена сводная статистика.

Рекомендуется вызывать эти хранимые процедуры (например, с помощью агента SQL Server) по ночам, чтобы обеспечить актуальность дневной информации. Пример сценария для запуска задания по ночам выглядит следующим образом.-- Объявить переменную @LastDay, в которой будет храниться последняя дата,-- задание будет запущено после полуночи для статистической обработки данных за последний деньDeclare @LastDay char(11)select @LastDay = Convert(char(11), getdate()-1 , 1)Select @LastDay Exec aud.rspAggServerActions @LastDayExec aud.rspAggDatabaseActions @LastDayExec aud.rspAggDDLActions @LastDayExec aud.rspAggDMLActions @LastDay

Как секционированы ваши данные?SQL-сценарий для создания базы данных аудита (SQLAudit) автоматически создаст 12 файловых групп по одной на каждый месяц, начиная от месяца, в котором выполняется сценарий. Кроме того, схема и функции секционирования обеспечат секционирование по месяцам таблиц aud.AuditLog_% в соответствии с этими файловыми группами. Следующий сценарий покажет, в какие секции таблицы попали те или иные строки данных.select partition_id, OBJECT_NAME(object_id), object_id, index_id, partition_number, partition_id, rows as [RowCount], x.value from sys.partitions left outer join (

select boundary_id, value from sys.partition_range_values where function_id = (

select function_id from sys.partition_functions where [name] = 'monthly_partition_function')

) x

99

Page 100: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

on x.boundary_id = partition_number - 1 where OBJECT_NAME(object_id) like 'AuditLog%' and index_id = 1 order by OBJECT_NAME(object_id), partition_number

Просмотр отчетовКак отмечалось в разделе «Аудит конфиденциальных операций», существует ряд отчетов, которые можно сформировать на основе журналов аудита. Для просмотра этих отчетов необходимо выполнить развертывание решения SQLAuditReports служб Reporting Services.

1. Откройте решение SQLAuditReports служб Reporting Services в среде разработки Microsoft Visual Studio®.

2. Укажите в качестве TargetServerURL свой сервер, т. е. замените http://campschurmann/ на имя своего сервера.

Рис. 47. Страница свойств SQL AuditingReports

3. Убедитесь в том, что общий источник данных SQLAudit.rds указывает на вашу базу данных SQLAudit (а не на версию базы данных SQLAudit на другом сервере).

4. Выполните развертывание отчетов (Построить > Развернуть). После этого можно просматривать отчеты по адресу: http://[имя сервера] /Reports/Pages/Folder.aspx?ItemPath=%2fSQL+Auditing+Reports&ViewMode=List

Известные проблемы

100

Page 101: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Бывают случаи, когда в журналы аудита не попадает имя экземпляра сервера, т. е. поле имени экземпляра сервера остается пустым. Чтобы обойти эту проблему, пакет служб SSIS проходит по всему журналу и выясняет имя экземпляра сервера, а затем присваивает его всем записям журнала (поскольку все они поступили с одного сервера). Но в некоторых случаях такой подход не работает, поскольку во всем журнале имя экземпляра пусто. Чтобы устранить эту проблему, файлы журналов должны называться в соответствии с соглашением об именах:

SQLAudit$%Server$InstanceName%_%GUID%.sqlaudit

[aud].[fn_GetServerInstanceName] — таким образом, экземпляр можно будет извлечь из имени файла аудита (%Server$InstanceName%) и использовать в том случае, если оно отсутствует в журнале. Чтобы называть файлы журналов в соответствии с соглашением об именах при их создании на сервере, измените имя аудита, указав его в формате SQLAudit$Server$InstanceName.

PBMУправление политиками Управление на основе политик — отличное средство автоматизации управления базами данных. Многосерверное управление и управление на основе сценариев с применением управления на основе политик — не такая уж простая задача. В этом разделе приведены рекомендации и сценарии, расширяющие возможности управления на основе политик.

PowerShellСоздание политики с помощьюОтличный ресурс, где можно научиться создавать политики с помощью PowerShell (а не вручную в среде SQL Server Management Studio), — блог Sethu по ссылке ниже.

http://blogs.msdn.com/sethus/archive/2008/06/16/sql-2008-powershell-script-for-creating-a-policy-and-saving-to-file.aspx

Пространство имен Microsoft.SqlServer.Management.Dmf содержит классы, представляющие управляющие объекты на основе политик SQL Server.

Дополнительные сведения см. в разделе http://msdn.microsoft.com/ru-ru/library/microsoft.sqlserver.management.dmf.aspx.

PBM PowerShell Развертывание политик с помощью(DeployPBMPolicies.ps1)Следующий сценарий PowerShell может быть использован для развертывания сценариев управления на основе политик на другом экземпляре базы данных.

# Экспорт политик с сервера$policydir = "C:\Policies\"del C:\Policies\*$sourceserver = "<Компьютер>\<Экземпляр>"

101

Page 102: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

$conn = new-object Microsoft.SQlServer.Management.Sdk.Sfc.SqlStoreConnection("server=$sourceserver;Trusted_Connection=true");$polstore = new-object Microsoft.SqlServer.Management.DMF.PolicyStore($conn);$fileprefix = "ExportedPolicy_"$policycount = 0#Временное решение, пока не будет исправлена ошибка.#$sourcepolicycount = $polstore.Policies.Count;foreach ($policy in $polstore.Policies) {

$policycount++;$StringWriter = New-Object System.IO.StringWriter;$XmlWriter = New-Object System.XMl.XmlTextWriter $StringWriter;#$polstore.ExportPolicy($polstore.Policies[$policy.Key],

$XmlWriter);$policy.serialize($XmlWriter);$XmlWriter.Flush();$StringWriter.Flush();$outputfile = $policydir + ("{0}.xml" -f (Encode-SqlName

$policy.Name));$StringWriter.ToString() | out-file $outputfile;

}if ($policycount -gt 0){

Write-Host $policycount " политик из "$sourcepolicycount " экспортировано в " $policydir -foregroundcolor "green"}else{

write-host "Политики не экспортированы" -foregroundcolor "red"}

# Импорт политик на несколько серверов$policylocation = "C:\Policies"$serversfile = "C:\Servers.txt"$servercount = 0$servers = Get-Content $serversfileforeach ($server in $servers) {

$servercount++;$conn = new-object

Microsoft.SQlServer.Management.Sdk.Sfc.SqlStoreConnection("server='$server';Trusted_Connection=true");

$polstore = new-object Microsoft.SqlServer.Management.DMF.PolicyStore($conn);

foreach ($fileobject in get-childitem $policylocation){$file = $fileobject.FullName$reader = [System.Xml.XmlReader]::Create((convert-path

$file));$output = $polstore.ImportPolicy($reader, 0, $true,

$true);}

}if ($servercount -gt 0){

Write-Host "Политики импортированы на" $servercount "серверов." -foregroundcolor "green"

102

Page 103: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

}else{

write-host "Политики не импортированы" -foregroundcolor "red"}

Перенос политикпроверки работоспособности в таблицу базыданных

Ниже приведен набор сценариев PowerShell и SQL для извлечения и загрузки данных о политиках с нескольких серверов и помещения их в централизованное местоположение для просмотра.

Примечание.При переносе политик проверки работоспособности выполняется прямая передача таблицы базы данных с данными о политиках из базы данных msdb в центральную базу данных. Возможно, лучший способ сделать это — образец PBMTalk Дэна Джонса (Dan Jones), который также включен в этот пакет SDK. Дополнительные сведения см. в папке PMTalk, где содержится презентация PowerPoint, схема политик и код PBM для экспорта данных управления на основе политик.

Загрузите решениеРаспакуйте файл Policy.zip в папку по своему выбору (например, D:\audit\code\Policy)

Обновите базу данных SQLAuditЭта база данных будет использоваться в качестве центрального сервера. Чтобы добавить данные о политиках, установите PolicyLoad.sql на центральном сервере, где нужно просматривать все отчеты, например на том сервере, где находится база данных аудита SQLAudit. Таким образом, центральная база данных SQLAudit будет содержать данные всех политик и данные аудита.

В центральной базе данных SQLAudit заполните таблицу pol.ServerList данными со всех серверов, по которым нужно получать информацию. Пример приведен ниже.

insert into pol.ServerList values ('campschurmann', 1)insert into pol.ServerList values ('emmonsroute', 1)insert into pol.ServerList values ('emmonsglacier', 0)

где 1 — включено, а 0 — отключено.

Выполните сценарий PowerShellКак отмечалось в разделе Использование управления на основе политик для определения, развертывания и проверки политик, этот сценарий считывает данные из таблицы pol.ServerList, проходит по всем серверам, перечисленным в ней, извлекает данные политик и загружает их на центральный сервер. Скопируйте сценарий PolicyExLoad.ps1 на центральный сервер, например в каталог D:\audit\code\Policy

Убедитесь, что эта папка также содержит архив (например, D:\audit\code\Policy\archive)

Этот сценарий PowerShell требует наличия оснасток SQL Server, чтобы иметь возможность запуска sqlps перед открытием обычного окна командной строки (а не окна командной строки PowerShell).

103

Page 104: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

В командной строке можно выполнить следующую команду..\PolicyExLoad.ps1 "[SQLCentral]" "[Database]" ”[Date]” “[Folder]”

SQLCentral: экземпляр сервера, содержащий центральную базу данных (т. е. SQLAudit).

Database: в большинстве случаев это база данных SQLAudit.

Date: последняя дата (т. е. один день), в который была выполнена политика. Если необходимы все данные о политике, укажите пустые кавычки "", чтобы получить все данные.

Folder: центральный репозиторий файлов журналов политик. Не забывайте, что в этой папке также должна быть папка для архива.

Здесь сценарий подключается к каждому из серверов, извлекает данные политик и записывает в общую папку CSV-файл. Обратите внимание, что существует два типа данных о политиках.

Таблицы измерений политик: содержат основные конструкции политик (имя, условие, категория и т. д.). Если политика изменяется или удаляется, то эта информация обновится в соответствующих таблицах msdb на удаленных серверах. В случае приведенного ниже сценария будет получено имя, условие и категория политики в следующих таблицах.

o syspolicy_policieso syspolicy_conditionso syspolicy_policy_categories

Таблицы фактов политик: поскольку эти таблицы содержат историю выполнения и подробные сведения о состоянии работоспособности, эти данные не обновляются (только вставляются новые события). Приведенный ниже сценарий получает историю выполнения, подробные сведения об истории выполнения и состояние работоспособности для следующих таблиц.

o syspolicy_policy_execution_historyo syspolicy_policy_execution_history_detailso syspolicy_system_health_state

Затем сценарий извлечения создает CSV-файлы для каждой из таблиц, используя следующее соглашение об именах.

ИмяСервера_[таблицаПолитики]_ггггММдд_ччммсс.csv

Затем сценарий PowerShell вызывает хранимую процедуру [pol].[uspImportPolicyData], которая выполняет некоторую дополнительную бизнес-логику для импорта каждого из CSV-файлов в соответствующую таблицу.

Если это файл для таблицы измерения политик, то данные будут сначала помещены в промежуточную таблицу. Затем все данные, связанные с экземплярами серверов в этой промежуточной таблице, будут удалены из таблицы политик. Смысл этого заключается в том, что нам необходимы актуальные данные о политиках (кем созданы, какие аспекты и условия

104

Page 105: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

используют, обновленный текст и т. п.). Затем промежуточная таблица используется для заполнения таблицы политик.

Если это файл для таблицы фактов политик, то этот файл просто загружается прямо в соответствующую таблицу фактов. Нас не волнуют повторы, поскольку таблицы фактов политик содержат уникальные индексы, которые обеспечивают отсутствие дубликатов в системе. Возможно даже многократное выполнение множества файлов фактов политик. База данных позаботится о том, чтобы отсеять все дубликаты.

После импорта этого файла он будет перемещен в каталог Folder\archive, чтобы исключить его повторную обработку.

105

Page 106: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Просмотр некоторых отчетов о политикахУстановите сценарий PolicyReports.sql на центральный сервер и базу данных (куда был установлен файл PolicyLoad.sql).

Как отмечалось в разделе Использование управления на основе политик для определения, развертывания и проверки политик, по журналам аудита можно сформировать несколько отчетов. Для просмотра этих отчетов необходимо выполнить развертывание решения [Policy Reports - PBM] служб Reporting Services.

Откройте решение [Policy Reports PBM] служб Reporting Services в среде Visual Studio.

Укажите в качестве TargetServerURL свой сервер, т. е. замените http://campschurmann/ на имя своего сервера.

Рис. 48. Страница свойств решения [Policy Reports — PBM] служб RS

Убедитесь в том, что общий источник данных SQLAudit.rds указывает на вашу базу данных SQLAudit (а не на версию базы данных SQLAudit на другом сервере).

Выполните развертывание отчетов (Построить > Развернуть). После этого можно просматривать отчеты по адресу: http://[имя сервера] /Reports/Pages/Folder.aspx?ItemPath=%2fSQL+Auditing+Reports&ViewMode=List

106

Page 107: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Заключение Разработчики Майкрософт и SQL Server прилагают все усилия, чтобы сделать доступной технологию, которая поможет заказчикам и партнерам в решении их задач по обеспечению соответствия требованиям. SQL Server 2008 реализует технологии и возможности, которые позволяют организациям справляться со все возрастающими трудностями в управлении данными и поставке заказчикам полезных решений. Демонстрируя значительные достижения в ключевых областях, SQL Server 2008 сегодня предлагает платформу для быстрой разработки решений по обеспечению соответствия требованиям.

В этом техническом документе содержатся только общие сведения о компонентах и функциях, связанных с обеспечением соответствия требованиям, реализованных в SQL Server 2008. В следующих версиях эти возможности планируется значительно расширить. Дополнительные сведения об обеспечении соответствия требованиям см. по адресу http://www.microsoft.com/sql.

Дополнительные сведения см. в разделах:

http://www.microsoft.com/sqlserver/: веб-узел SQL Server

http://technet.microsoft.com/ru-ru/sqlserver/: технический центр SQL Server

http://msdn.microsoft.com/ru-ru/sqlserver/: центр разработки SQL Server

http://www.microsoft.com/sqlserver/2008/ru/ru/wp-sql-2008-security.aspx: технический документ по безопасности SQL Server

http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1626&SiteID=1: форум по безопасности SQL Server

http://blogs.msdn.com/sqlsecurity/: блог по безопасности SQL Server

http://blogs.msdn.com/sqlpbm/: блог по управлению на основе политик SQL Server

107

Page 108: SQL Server 2008 Compliance Guidancedownload.microsoft.com/.../ReachingCompliance_RUS.… · Web viewКак правило, значения и диапазоны для KRI задаются

Помог ли вам этот документ? Оставьте свой отзыв. Оцените этот документ по шкале от 1 (плохо) до 5 (отлично). Почему он заслужил такую оценку? Пример.

Относить ли хорошую оценку на счет удачных примеров, информативных снимков экрана, ясного изложения, чего-либо еще?

Относить ли плохую оценку на счет неудачных примеров, неразборчивых снимков экрана, невнятного изложения?

Ваш отзыв поможет нам повысить качество нашей документации.

Отправить отзыв.