Сравнительный анализ моделей безопасности в SQL Server 2000 и SQL Server 2005

Содержание

Слайд 2

Компоненты SQL Server Реляционный сервер Внутризапросный параллелизм Распределенные фрагментированные представления Службы

Компоненты SQL Server

Реляционный сервер
Внутризапросный параллелизм
Распределенные фрагментированные представления
Службы тиражирования
Средства создания резервных

копий БД
Механизмы отказоустойчивости (Log Shipping, MSCS)
Графические средства администрирования и отладки
Утилиты настройки и оптимизации
Службы репликации
Службы формирования отчетов (Reporting Services)
Cлужбы оповещения (Notification Services)
Службы анализа данных (OLAP, DataMining)
Инструменты управления (Management tools)
Программные интерфейсы доступа и разработки
ODBC, OLE DB, ADO, OLE DB for OLAP, ADO MD, ADOX, интерфейсы дистрибутора и согласования, SQL DMO, DSO, …
Слайд 3

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

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

послужило причиной внесения в сервер SQL Server 2000 новых значительных улучшений системы безопасности, не только обеспечивающих наиболее высокий в отрасли уровень безопасности, но также упрощающих применение средств, необходимых для достижения этого уровня. Прежде всего, SQL Server 2000 устанавливается по умолчанию с более высоким уровнем безопасности, при этом используются средства, встроенные в новейшую интегрированную систему безопасности операционной системы Windows 2000. Это упрощает и ускоряет изоляцию сервера в производственной среде.
SQL Server 2000 также включает в себя набор новых средств обеспечения безопасности: мощную и гибкую систему безопасности сервера на ролевой основе, профили БД и приложений, интегрированные средства аудита безопасности (отслеживающие 18 различных видов событий и дополнительные события), поддержку шифрования файлов и сетевых сообщений (включая SSL), а также поддержку протокола Kerberos и возможность делегирования полномочий. SQL Server 2000 прошел проверку в рамках программы правительства США Trusted Product Evaluation Program и Агентство национальной безопасности подтвердило его соответствие уровню безопасности C2
Слайд 4

Редакции SQL Server SQL Server 2005 Enterprise Edition SQL Server 2005

Редакции SQL Server

SQL Server 2005 Enterprise Edition
SQL Server 2005 Standart

Edition
SQL Server 2005 Workgroup Edition
SQL Server 2005 Express Edition (Free)
SQL Server 2005 Developer Edition
Слайд 5

Безопасность SQL Profiler - мониторинг событий класса безопасности Add/drop SQL login,

Безопасность

SQL Profiler - мониторинг событий класса безопасности
Add/drop SQL login, Add/remove database

user, Add/remove database role member, Password change, GRD - statement perms, GRD – object perms, ...
Для каждого записывается время, пользователь, хост, успех/неудача и т.д.
Шифрация трафика для всех сетевых библиотек при помощи SSL / TLS
Поддержка делегирования на основе Kerberos, интеграция с Active Directory
Слайд 6

Кластеризация Cluster Service (до 8-х узлов) SQL Server 2005 EE SQL

Кластеризация

Cluster Service
(до 8-х узлов)

SQL Server 2005 EE

SQL Server 2005 EE

SQL

Server 2005 EE

SQL Server 2005 EE

Общий дисковый массив

Fiber Channel

Слайд 7

Передача журналов (Log Shipping) Основной сервер Резервные серверы (1..n) 1. BACKUP

Передача журналов (Log Shipping)

Основной сервер

Резервные серверы (1..n)

1. BACKUP T-LOG

T-Log
Dump

3.
RESTORE T-LOG
WITH

STANDBY

T-Log
Dump

Сервер мониторинга

2. Log COPY (“Pulled”)

Запланированные по расписанию работы в SQL Agent

Слайд 8

Расширенный список параллельных операций Операция создания индекса выполняется одновременно на нескольких

Расширенный список параллельных операций

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

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

Параллельное сканирование по диапазонам

A-H

I-R

S-Z

A-Z

Поток

Слайд 9

Индексированные представления Обычное представление – всего лишь удобная форма записи сложного

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

Обычное представление – всего лишь удобная форма записи сложного оператора

SELECT
Чтобы обращаться к нему как к якобы таблице
Хранится только определение SQL-запроса, который выполняется всякий раз при обращении к представлению
Как только над представлением создается индекс, его результаты «материализуются»
И обновляются при модификации данных в исходных таблицах
Т.е. ведут себя как все приличные индексы
Представление может содержать агрегаты, операторы связывания таблиц или их комбинацию
Первый индекс над представлением должен быть
Кластерным -> для сохранения представления как таблицы
Уникальным -> для поддержки индекса актуальным при внесении изменений в таблицы

Кто выигрывает от индексированных представлений
Приложения, изобилующие запросами с многочисленными операторами связывания, группировки, агрегации
Т.е. OLAP-приложения
Оптимизатор может использовать индекс над представлением, даже если оно явно не фигурирует в запросе
Кто не выигрывает
Приложения, для которых характерны постоянные обновления в БД
Т.е. OLTP-приложения
Т.к. частая коррекция представлений снижает производительность
Группировки по высокоселективным полям
Т.к. размер представления будет ненамного меньше самой таблицы

Слайд 10

Поддержка XML SQL -> XML SELECT … FOR XML XML ->

Поддержка XML

SQL -> XML
SELECT … FOR XML
XML -> SQL


OpenXML в T-SQL
UpdateGrams
XML-описание операций INSERT, UPDATE, DELETE
Bulk Load XML-файлов в БД
XML View Mapper
Отображение XML-документа на таблицу
Слайд 11

Содержание Обзор модели безопасности SQL Server 2000 Ограничения модели безопасности и

Содержание

Обзор модели безопасности SQL Server 2000
Ограничения модели безопасности и способы их

устранения
Рекомендации по настройке
Что нового в SQL Server 2005?
Новая модель разрешений
Безопасность метаданных
Более гранулярные разрешения
Покрывающие разрешения
Разделение схемы и владельца
Контекст выполнения хранимого кода
Слайд 12

Составляющие модели безопасности SQL Server 2000 Аутентификация Учётные записи Windows и

Составляющие модели безопасности SQL Server 2000

Аутентификация
Учётные записи Windows и SQL Server
Авторизация
Проверки

разрешений на доступ к объектам и на выполнение операций
Аудит
Трассировка, журналы сервера и системы
Слайд 13

Модель безопасности SQL Server 2000 Запрос на сетевое подключение Запрос на

Модель безопасности SQL Server 2000

Запрос на сетевое подключение

Запрос на подключение к

SQL Server

Переход к БД и проверка прав

Попытка выполнить действия

Слайд 14

Режимы доступа к SQL Server Windows® Authentication Доступ разрешен только с

Режимы доступа к SQL Server

Windows® Authentication
Доступ разрешен только с использованием бюджета

Windows NT®/ Windows 2000/2003
Обеспечивает единую регистрацию
Mixed security
Принимает доступ под бюджетом Windows
Принимает доступ через авторизацию на SQL Server
Сложнее поддается защите
Слайд 15

Учётная запись и Пользователь Учётная запись (login) дает право на подключение

Учётная запись и Пользователь

Учётная запись (login) дает право на подключение
Хранится в

БД master
Относится к серверу в целом
Сама по себе не дает прав
Исключение: Членство в фиксированной серверной роли
Пользователь (user) БД ассоциируется с правами
С ним ассоциируется схема (коллекция объектов БД)
Права назначаются пользователям БД
Действует в рамках конкретной БД
Слайд 16

Роли SQL Server Фиксированные роли сервера Гибкое администрирование сервера Фиксированные роли

Роли SQL Server

Фиксированные роли сервера
Гибкое администрирование сервера
Фиксированные роли БД
Гибкое администрирование БД
Пользовательские

роли БД
Пользовательские комбинации прав
Прикладные роли
Ассоциация прав с приложением, а не с пользователем
Слайд 17

Разрешения SQL Server поддерживает три команды для работы с разрешениями (Data

Разрешения

SQL Server поддерживает три команды для работы с разрешениями (Data Control

Language - DCL):
GRANT назначает разрешение
DENY запрещает разрешение
REVOKE отзывает сделанное ранее при помощи GRANT или DENY действие
Слайд 18

Содержание Обзор модели безопасности SQL Server 2000 Ограничения модели безопасности и

Содержание

Обзор модели безопасности SQL Server 2000
Ограничения модели безопасности и способы их

устранения
Рекомендации по настройке
Что нового в SQL Server 2005?
Новая модель разрешений
Безопасность метаданных
Более гранулярные разрешения
Покрывающие разрешения
Разделение схемы и владельца
Контекст выполнения хранимого кода
Слайд 19

Ограничения модели безопасности SQL Server 2000 и способы их устранения 1.

Ограничения модели безопасности SQL Server 2000 и способы их устранения

1. Неограничен

доступ к метаданным для любого пользователя БД. Решение: разрабатывать приложение так, чтобы доступ к хранимому коду на стороне SQL Server не позволил злоумышленнику нанести существенный ущерб
2. Невозможно назначить пользователю БД разрешения на выполнение определённых команд без повышения уровня его привилегий. Решение: в SQL2k решение отсутствует
3. По умолчанию непривилегированный пользователь может выполнить ряд расширенных хранимых процедур, предоставляющих доступ к важной информации. Решение: отозвать разрешения на выполнение ряда хранимых процедур для встроенной группы public
4. Отсутствуют встроенные средства шифрования данных. Решение: использовать средства сторонних производителей
5. Нет возможности ограничить количество попыток соединения с сервером при указании неверной пары учётная запись/пароль для учётных записей SQL Server. Решение: использовать для соединения с сервером только учётные записи Windows, либо использовать средства сторонних производителей
Слайд 20

Есть db_datareader и db_datawriter, а db_executor нет..

Есть db_datareader и db_datawriter, а db_executor нет..

Слайд 21

Содержание Обзор модели безопасности SQL Server 2000 Ограничения модели безопасности и

Содержание

Обзор модели безопасности SQL Server 2000
Ограничения модели безопасности и способы их

устранения
Рекомендации по настройке
Что нового в SQL Server 2005?
Новая модель разрешений
Безопасность метаданных
Более гранулярные разрешения
Покрывающие разрешения
Разделение схемы и владельца
Контекст выполнения хранимого кода
Слайд 22

Рекомендации по настройке Установить самые свежие пакеты обновлений и исправлений Отключить

Рекомендации по настройке

Установить самые свежие пакеты обновлений и исправлений
Отключить ненужные сетевые

протоколы
Включить протоколирование (аудит) неудачных попыток подключения
Разместить файлы данных на файловой системе NTFS и настроить доступ к ним
Использовать только аутентификацию Windows
Указать сложные пароли для учётных записей SQL Server
Использовать непривилегированные (не административные, как минимум) учётные записи для запуска службы mssqlserver и службы SQL Server Agent.
Подробнее в разделе “SQLSecurity Checklist” на сайте www.sqlsecurity.com
Слайд 23

Рекомендации по настройке Microsoft Baseline Security Analyzer Слишком много пользователей входят

Рекомендации по настройке

Microsoft Baseline Security Analyzer

Слишком много пользователей входят в роль

sysadmin
Права на выполнение CmdExec дано не только роли sysadmin
Пустой или простой пароль
Администраторы Windows входят в роль sysadmin?
Некорректные разрешения (ACLs) на папки данных SQL Server
В логах установки остается пароль sa (sqlstp.log и др.)
Пользователь guest по умолчанию наделен излишними правами
SQL Server запущен на контроллере домена
Доступ на чтение определенных ключей реестра для группы Everyone
Наделение учетной записи для запуска SQL Server излишними полномочиями
Отсутствие пакетов исправлений и обновлений

http://www.microsoft.com/technet/security/tools/mbsahome.mspx

Service Pack Installation May Save Standard Security Password in File

Слайд 24

Содержание Обзор модели безопасности SQL Server 2000 Ограничения модели безопасности и

Содержание

Обзор модели безопасности SQL Server 2000
Ограничения модели безопасности и способы их

устранения
Рекомендации по настройке
Что нового в SQL Server 2005?
Новая модель разрешений
Безопасность метаданных
Более гранулярные разрешения
Покрывающие разрешения
Разделение схемы и владельца
Контекст выполнения хранимого кода
Слайд 25

Database Maintenance Backup and Restore Enhancements Checksum Integrity Checks Dedicated Administrator

Database Maintenance
Backup and Restore Enhancements
Checksum Integrity Checks
Dedicated Administrator Connection
Dynamic AWE
Fast Recovery
Highly-available

Upgrade
Online Index Operations
Online Restore
Parallel DBCC
Parallel Index Operations
Management Tools
MDX Query Editor
MDX Intellisense
T-SQL Intellisense
Version Control Support
XML/A
SQLCMD Command Line Tool
Performance Tuning
Profiler Enhancements
Profiling Analysis Services
Exportable Showplan
Exportable Deadlock Traces
Full-text Search
Indexing of XML Datatype
MDAC
Side by Side installation
Microsoft Installer base setup
Support for Active Directory Deployment
SQL Client .NET Data Provider
Server Cursor Support
Asynch
Security
All Permissions Grantable
Fine Grain Administration Rights
Separation of Users and Schema

SQL Server 2005

.NET Framework
Common Language Runtime Integration
User-defined Aggregates
User-defined Data Types
User-defined Functions
SQL Server In-Proc Data Provider
Extended Triggers
Data Types
File Stream Storage Attribute
Managed SQL Types
New XML Datatype
SQL Server Engine
New Message Service Broker
HTTP Support (Native HTTP)
Database Tuning Advisor
Enhanced Read ahead & scan
Extended Indexes
Multiple Active Result Sets
Persisted Computed Columns
Queuing Support
Snapshot Isolation Level
Scale Up Partitioning
VIA support
NUMA support
Database Failure and Redundancy
Fail-over Clustering (up to 8 node)
Enhanced Multi-instance Support
Database Mirroring
Database Viewpoints
XML
XQUERY Support (Server & Mid Tier)
XML Data Manipulation Language
FOR XML Enhancements
XML Schema (XSD) Support
MSXML 6.0 (Native)
XQuery Designer

Replication
Auto-tuning Replication Agents
Oracle Publication
Improved Blob Change Tracking
OLAP and Data Mining
Analysis Management Objects
Windows Integrated Backup and Restore
Web Services/XML for Analysis
DTS and DM Integration
Eight new DM algorithms
Auto Packaging and Deployment
Data Transformation Services
New Architecture (DTR + DTP)
Complex Control Flows
Control Flow Debugging
For Each Enumerations
Property Mappings
Full Data Flow Designer
Full DTS Control Flow Designer
Graphical Presentation of Pkg Execution
Immediate Mode and Project Mode
Package (Advanced) Deployment Tools
Custom Tasks and Transformations
Reporting Services
Multiple Output Formats
Parameters (Static, Dynamic, Hierarchical)
Bulk Delivery of Personalized Content
Support Multiple Data Sources
Sharepoint Support
Visual Design Tool
Charting, Sorting, Filtering, Drill-Through
Scheduling, Caching
Complete Scripting Engine
Scale Out architecture
XML Report Definition

Слайд 26

Что нового в модели безопасности SQL Server 2005 Более жесткие настройки

Что нового в модели безопасности SQL Server 2005

Более жесткие настройки по

умолчанию
Сокрытие метаданных
Парольная политика
Новые разрешения и уровни разрешений
Разделение схемы и владельца
Контекст выполнения хранимого кода
Безопасность .NET кода
Встроенное шифрование данных
Триггеры на DDL
Слайд 27

Настройки по умолчанию Требуется явное включение дополнительной функциональности Microsoft .NET Framework

Настройки по умолчанию

Требуется явное включение дополнительной функциональности
Microsoft .NET Framework
SQL Service

Broker Network Connectivity
Analysis Services http connectivity
Следующие службы находятся в режиме запуска Manual
SQL Server Agent
full-text search
Новый сервис Data Transformation Services
При установке требуется задание пароля учётной записи sa
даже если сервер будет применять исключительно режим
аутентификации Windows
Слайд 28

Сокрытие метаданных Системные объекты теперь находятся в скрытой базе mssqlsystemresource Catalog

Сокрытие метаданных

Системные объекты теперь находятся в скрытой базе mssqlsystemresource
Catalog Views –

замена и расширение системных таблиц, данные из Catalog Views фильтруются в зависимости от того, кто делает запрос
Разрешение VIEW DEFINITION позволяет обойти сокрытие метаданных и его можно выдать на трех уровнях: базы, схемы, объекта
Шифрование хранимого кода стало надёжным
Слайд 29

Парольная политика Для учётной записи SQL Server можно указать следующие параметры

Парольная политика

Для учётной записи SQL Server можно указать следующие параметры команды

CREATE/ALTER LOGIN:
Необходимость сменить пароль при первом соединении с сервером (MUST_CHANGE)
Необходимость проверки срока действия пароля (CHECK_EXPIRATION)
Необходимость применения локальной парольной политики Windows (CHECK_POLICY)
CHECK_EXPIRATION и CHECK_POLICY работают полноценно на Windows 2003 Server и более новых системах, а на Windows 2000 это сводится к проверке жестко зашитых правил
Слайд 30

Парольная политика

Парольная политика

Слайд 31

Новые разрешения Разрешения можно выдавать на четырех уровнях: Сервера Базы Схемы

Новые разрешения

Разрешения можно выдавать на четырех уровнях:
Сервера
Базы
Схемы
Объекта
Выданные разрешения уровня сервера

и уровня базы данных можно получить через опрос представлений sys.server_permissions и sys.database_permissions
Слайд 32

Содержание Обзор модели безопасности SQL Server 2000 Ограничения модели безопасности и

Содержание

Обзор модели безопасности SQL Server 2000
Ограничения модели безопасности и способы их

устранения
Рекомендации по настройке
Что нового в SQL Server 2005?
Новая модель разрешений
Безопасность метаданных
Более гранулярные разрешения
Покрывающие разрешения
Разделение схемы и владельца
Контекст выполнения хранимого кода
Слайд 33

Проблема неразделения схемы и пользователя User Database Object управляется User 2

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

User

Database Object

управляется

User 2

Удаление пользователей может привести к

необходимости изменения кода приложения!
Слайд 34

Удаление пользователя => изменение кода приложения App1 App2 SELECT custID FROM

Удаление пользователя => изменение кода приложения

App1

App2

SELECT custID FROM User1.OrdersTable

Изменение App1

Изменение App2

OrdersTable

InsertOrderProc

SELECT

custID FROM User2.OrdersTable

Exec User1.InsertOrderProc (@orderid)

Exec User2.InsertOrderProc (@orderid)

Пользователь = User1
SCHEMA = User1

Пользователь = User2
SCHEMA = User2

Слайд 35

Разделение схемы и владельца База данных может содержать множество схем Каждая

Разделение схемы и владельца

База данных может содержать множество схем
Каждая схема имеет

только одного владельца – пользователя или роль
Каждый пользователь имеет схему по умолчанию
Большинство объектов БД находятся в схемах
Создание объекта внутри схемы требует полномочий CREATE и полномочий ALTER или CONTROL на эту схему
Цепочка владения по-прежнему основана на владельцах, а не на схемах

владеет

имеет схему по умолчанию

владеет

владеет

Схема 3

База данных

Слайд 36

Разделение схемы и владельца User Database Object Schema содержится в управляется

Разделение схемы и владельца

User

Database Object

Schema

содержится в

управляется

управляется

User 2

управляется

Удаление пользователя не потребует изменения

кода приложения
Слайд 37

Удаление пользователя не приводит к изменению кода приложения App1 App2 SELECT

Удаление пользователя не приводит к изменению кода приложения

App1

App2

SELECT custID FROM User1.OrdersTable

OrdersTable

InsertOrderProc

Exec

User1.InsertOrderProc (@orderid)

Владелец = User1
SCHEMA = User1

Владелец = User2
SCHEMA = User1

Слайд 38

Разделение схемы и владельца Разделение владельцев (principals) и схем Владелец (Principal)

Разделение схемы и владельца

Разделение владельцев (principals) и схем
Владелец (Principal)
Сущность от которой

защищают объекты
Доступны через представление sys.database_principals
Схема (Schema)
Контейнер объектов; 3-я часть полного наименования
Доступны через представление sys.schemas
Понятие схемы по умолчанию
Присуще пользователю или роли приложения
Используется при разрешении имен; механизм для поиска объектов
Содержится в представлении sys.database_principals
Удаление пользователя не требует изменения кода приложения
Слайд 39

Schema содержится в User 2 управляется Default Schema User1 Default Schema

Schema

содержится в

User 2

управляется

Default Schema

User1

Default Schema S1

User2

User3

Разделение схемы и владельца

Схема по умолчанию

дает дополнительный контроль над разрешением имен
Слайд 40

Схема по умолчанию Используется для разрешения имен Не всем пользователям нужно

Схема по умолчанию

Используется для разрешения имен
Не всем пользователям нужно управлять схемами
Один

и тот же процесс разрешения имён для нескольких пользователей
Схема dbo может является не обязательно единственной общей схемой в плане разрешения имен
Зачем это нужно?
для того, чтобы объект мог быть доступен из любого контекста, его не обязательно создавать в схеме dbo
Разрешение создания объектов в схеме dbo может привести к некоторому риску безопасности при использовании цепочек владения
Слайд 41

Содержание Обзор модели безопасности SQL Server 2000 Ограничения модели безопасности и

Содержание

Обзор модели безопасности SQL Server 2000
Ограничения модели безопасности и способы их

устранения
Рекомендации по настройке
Что нового в SQL Server 2005?
Новая модель разрешений
Безопасность метаданных
Более гранулярные разрешения
Покрывающие разрешения
Разделение схемы и владельца
Контекст выполнения хранимого кода
Слайд 42

User 3 Select Perms проверяются для User3 Execute Perms проверяются для

User 3

Select Perms проверяются для User3

Execute Perms проверяются для User3

User1.Proc1

User1.T1

Execute Perms

проверяются для User3

Нет проверки Perms для User3

‘EXECUTE AS ‘X’ ’

Execute Perms проверяются для User3

Select Perms проверяются для ‘X’.
а не для User3

SQL 2005

SQL 2000

Контекст выполнения хранимого кода

Слайд 43

Возможность указывать контекст выполнения процедуры, функции, триггеры Цепочка владения теперь не

Возможность указывать контекст выполнения
процедуры, функции, триггеры
Цепочка владения теперь не является единственным

механизмом упрощающим назначение прав
Правила цепочек владения по-прежнему применимы
Разрешения проверяются для тек.контекста
В отличие от цепочек владения применимо и к командам DDL
Применимо и к динамическому SQL

Контекст выполнения хранимого кода

Слайд 44

Контекст выполнения хранимого кода Для хранимых процедур и определяемых пользователем функций

Контекст выполнения хранимого кода

Для хранимых процедур и определяемых пользователем функций (кроме

inline table-valued) предусмотрено четыре выражения для указания контекста выполнения, т.е. пользователя, который будет использоваться при проверке разрешений на объекты, на которые ссылается процедура или функция.
CALLER – выполнять под вызвавшим пользователем
SELF – под создавшим процедуру
USER = username - под указанным пользователем
OWNER – под текущим владельцем процедуры
Слайд 45

По умолчанию – EXECUTE AS CALLER. Для указания имени пользователя username

По умолчанию – EXECUTE AS CALLER. Для указания имени пользователя username

(отличного от своего) необходимо выполнение одного из условий:
Входить в фиксированную серверную роль sysadmin
Входить в фиксированную роль базы данных db_owner
Обладать разрешением на имперсонализацию учетной записи, соответствующей пользователю username.
Можно использовать EXECUTE AS USER = username в качестве “обертки” команд, разрешения на которые нельзя передавать. Например так можно делегировать TRUNCATE.

Контекст выполнения хранимого кода

Слайд 46

Создание набора разрешений с помощью EXECUTE AS Сценарий: Database Admin хочет

Создание набора разрешений с помощью EXECUTE AS

Сценарий:
Database Admin хочет дать возможность

делать усечение (truncate) ряда таблиц каждую ночь.
Проблема:
Truncate непередаваемое разрешение
Минимальное покрывающее разрешение - ALTER, но оно дает больше прав чем нужно
Решение: нам поможет EXECUTE AS!
Создать процедуру, которая усекает нужные таблицы
Указать в строке execute as пользователя с правами ALTER
Дать разрешение на выполнение процедуры нужному пользователю
Результат:
Мы только что сделали Truncate назначаемым разрешением!
Слайд 47

Безопасность .NET кода Для .NET сборок предусмотрено указание одного из трех

Безопасность .NET кода

Для .NET сборок предусмотрено указание одного из трех уровней

безопасности при загрузке в SQL Server командой CREATE ASSEMBLY: SAFE - доступ ко внешним ресурсам не допускается EXTERNAL_ACCESS – допускается доступ к файлам, сетевым ресурсам, реестру, переменным окружения UNSAFE - доступ ко всем ресурсам, в том числе к неуправляемому коду
Если сборка в процессе работы выйдет за указанные при ее загрузке пределы, то CLR сгенерирует исключение и выполнение прекратится.
Слайд 48

Поддержка криптографии В SQL Server 2005 есть встроенные средства шифрования, цифровой

Поддержка криптографии

В SQL Server 2005 есть встроенные средства шифрования, цифровой подписи

и верификации
Поддерживаемые типы ключей:
Симметричные ключи
RC4, RC2, DES, AES
Асимметричные ключи
Rivest-Shamir-Adelman Encryption (RSA)
Слайд 49

Поддержка криптографии

Поддержка криптографии

Слайд 50

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

Триггеры на DDL

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

расширенный аудит. Создаются на базу
или сервер, не могут быть INSTEAD OF.
Слайд 51

Конечные точки (Endpoints) Абстракция номера порта, транспортного протокола и принципала Как

Конечные точки (Endpoints)

Абстракция номера порта, транспортного протокола и принципала
Как происходит соединение:
Клиент

указывает номер порта
Сервер вычисляет Endpoint, который соответствует указанному порту
Сервер проверят, что этот Endpoint правильно сконфигурирован
Сервер проверят, что указанные принципал имеет разрешение на соединение с данным Endpoint
Слайд 52

Человеку свойственно ошибаться SQL Injection Как избежать: Отказаться от динамических запросов

Человеку свойственно ошибаться SQL Injection

Как избежать:
Отказаться от динамических запросов в пользу

хранимых процедур или параметризованных запросов.
Использовать регулярные выражения для проверки пользовательского ввода до того, как он будет отправлен в СУБД.
Использовать функции для экранирования специальных символов
Проверка пользовательского ввода
Соответствие типов
Никогда не строить T-SQL команды непосредственно из введенных пользователем данных
Использовать процедуры для проверки ввода либо вынести проверку на уровень приложения
Никогда не принимать строки, участвующие в создании имени файла и содержащие: AUX, CLOCK$, COM1, .., COM8, CON, CONFIG$, LPT1, .., LPT8, NUL и PRN
Слайд 53

Подведение итогов SQL Server 2000 – промышленная СУБД с надежным механизмом

Подведение итогов

SQL Server 2000 – промышленная СУБД с надежным механизмом контроля

доступа к информации
SQL Server 2005 – упростит жизнь разработчикам и администраторам при создании и поддержке надежных и безопасных приложений
Слайд 54

Ресурсы Для разработчиков и профессионалов в IT Официальная страница о SQL

Ресурсы
Для разработчиков и профессионалов в IT

Официальная страница о SQL Server

2005
http://www.microsoft.com/sql/2005
Один из самых интересных сайтов, посвященных безопасности SQL Server
http://www.sqlsecurity.com
Российское сообщество по SQL Server
http://www.sql.ru
Каждый месяц в Microsoft Russia проводится семинар, посвященный SQL Server (уже 18 - в Москве, 4 – в Питере, до 70 участников)