Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Система безопасности Database Engine 2011.doc
Скачиваний:
8
Добавлен:
26.08.2019
Размер:
1.06 Mб
Скачать

Система безопасности Database Engine Оглавление

Система безопасности Database Engine 1

Принципы концепции безопасности базы данных. 2

Аутентификация 10

Использование SQL Server Management Studio для выбора одного из режимов аутентификации. 11

Создание нового имени входа SQL Server. 13

Создание нового имени входа SQL Server в Transact-SQL. 16

Назначение учетной записи фиксированной серверной роли. Интерфейс SQL Server Management Studio. 16

Управление серверными ролями с использованием Transact SQL. 21

Управление доступом к базам данных. 22

Предоставление разрешений на базу данных в SQL Server Management Studio. 23

Предоставление доступа к базам данных с использованием Transact-SQL 25

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

Роли базы данных 27

Создание роли с использованием Transact-SQL. 27

Создание роли и добавление члена роли в Transact SQL 30

Предоставление индивидуальных (гранулярных) разрешений. Управление доступом к таблицам и столбцам. 30

Предоставление индивидуальных (гранулярных) разрешений в SQL Server Management Studio. 31

Управление индивидуальными разрешениями в Transact SQL. 35

Управление доступом к схемам 39

Задания для самостоятельного выполнения: 44

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

Наиболее важные концепции безопасности базы данных:

  • аутентификация;

  • шифрование;

  • авторизация;

  • отслеживание изменений.

Аутентификация требует ответа на следующий вопрос: "Имеет ли этот пользователь легитимные права на доступ в систему?" Эта концепция безопасности задает процесс проверки полномочий для предотвращения использования системы неавторизованными пользователями.

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

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

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

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

SQL Server 2005 Database Engine управляет иерархической коллекцией сущностей, защита которых производится при помощи разрешений. Эти сущности называются защищаемыми объектами. Наиболее общими защищаемыми объектами являются серверы и базы данных, но отдельные разрешения могут устанавливаться на гораздо более глубоком уровне детализации. SQL Server регулирует выполнение участниками действий над защищаемыми объектами, проверяя, обладают ли они соответствующими разрешениями.

На следующей иллюстрации показана связь между иерархиями разрешений Database Engine.

Участники - это лица, группы и процессы, которые могут запрашивать ресурсы SQL Server.

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

Имя входа Windows является примером индивидуального (неделимого) участника, а группа Windows - коллективного на уровне операционной системы. Имя входа SQL – это индивидуальный участник на уровне экземпляра SQL Server.

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

Область влияния участника зависит от области его определения: Windows, сервер, база данных, - а также от того, коллективный это участник или индивидуальный.

Участники уровня Windows

  • Имя входа домена Windows

  • Локальное имя входа Windows

Участники уровня SQL Server

  • Имя входа SQL Server

  • Фиксированная серверная роль

Участники уровня базы данных

  • Пользователь базы данных

  • Роль базы данных

  • Роль приложения

Защищаемый объект - Объект, который может иметь дескриптор безопасности.

Защищаемый объект – конечная точка.

В основу управления соединениями в Microsoft SQL Server 2005 положены конечные точки. Конечная точка — это объект SQL Server, позволяющий SQL Server обмениваться данными по сетевым каналам.

Роли.

Когда нескольким пользователям нужно выполнять похожие действия с отдельной базой данных (и для них нет соответствующей группы Window) можно добавить роль базы данных, которая задает группу пользователя базы данных, имеющих доступ к одним и тем же объектам базы данных.

Участниками роли базы данных могут быть любые следующие представители:

  • группы Windows и учетные записи пользователей Windows;

  • учетные записи SQL Server; '

  • другие роли.

Архитектура безопасности в Database Engine включает несколько «систем» ролей, которые имеют специальные неявные полномочия.

Существуют два типа предварительно определенных ролей (в дополнение к ролям, определенным пользователем):

  • фиксированные серверные роли;

  • фиксированные роли базы данных.

Фиксированные серверные роли распространяются на весь сервер. Как правило, пользователю необходим доступ к каким-либо данным. Однако возможно создать некоторые имена входа с разрешениями на выполнение задач администрирования.

Для выполнения этой задачи SQL Server предоставляет серверные роли на уровне экземпляра. (Серверные роли являются фиксированными, нельзя создать новые роли на уровне экземпляра). В таблице перечислены фиксированные серверные роли, созданные SQL Server 2005.

Фиксированные серверные роли

Фиксированная серверная роль

Описание

bulkadmin

Может выполнять предложение BULK INSERT1

dbcreator

Может создавать, изменять, удалять и восстанавливать базы данных

diskadmin

Может управлять файлами на диске

processadmin

Может завершать процессы

securityadmin

Может управлять именами входа и назначать разрешения

serveradmin

Может изменять параметры сервера и завершать работу сервера

setupadmin

Может управлять связанными серверами и выполнять системные хранимые процедуры

sysadmin

Может выполнять на сервере любые действия

Каждый член фиксированной серверной роли может добавлять другие имена входа к той же роли.

Учетная запись sa является учетной записью администратора. Она включена в фиксированную серверную роль sysadmin.

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

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

Роли базы данных по умолчанию

Роль базы данных

Описание

db_accessadmin

Может управлять доступом к базе данных

db_backupoperator

Может выполнять резервное копирование базы данных

db_datareader

Может читать данные из таблиц всех пользователей

db_datawriter

Может добавлять, удалять и обновлять данные в таблицах всех пользователей

db_ddladmin

Может выполнять любые команды DDL в базе данных

db_denydatareader

Не может читать какие-либо данные в таблицах пользователей

db_denydatawriter

Не может добавлять, удалять и обновлять какие-либо данные в таблицах пользователей

db_owner

Может выполнять все действия по настройке конфигурации и обслуживанию

db_securityadmin

Может изменять членство в ролях базы данных и управлять разрешениями

public

Особая роль базы данных. Все пользователи принадлежат к роли public. Пользователей из группы public нельзя удалить.

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

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

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

Роль public поддерживает все полномочия по умолчанию для пользователей базы данных и не может быть удалена. Эта роль не может иметь назначенных ей пользова­телей, групп или ролей, потому что они принадлежат роли по умолчанию.

Помимо рассмотренных ролей существуют:

  • роли приложений;

  • роли, определенные пользователем

К защищаемым объектами относятся ресурсы, доступ к которым регулируется системой авторизации компонента SQL Server Database Engine. Некоторые защищаемые объекты могут храниться внутри других, создавая иерархии "областей", которые сами могут защищаться.

К областям защищаемых объектов относятся сервер, база данных и схема.

Область защищаемых объектов «сервер» содержит следующие защищаемые объекты:

  • Конечная точка

  • Имя входа

  • База данных

Область защищаемых объектов «база данных» содержит следующие защищаемые объекты.

  • Пользователь

  • Роль

  • Роль приложения

  • Сборка

  • Тип сообщений

  • Маршрут

  • Служба

  • Привязки удаленных служб

  • Полнотекстовый каталог

  • Сертификат

  • Асимметричный ключ

  • Симметричный ключ

  • Контракт

  • Схема

Область защищаемых объектов «схема» содержит следующие защищаемые объекты:

  • Тип

  • Коллекция XML-схем

  • Объект

Сущности, относящиеся к классу объектов:

  • Статистическое вычисление

  • Ограничение

  • Функция

  • Процедура

  • Очередь

  • Статистика

  • Синоним

  • Таблица

  • Представление

Использование элементов иерархии безопасности в системе SQL Server:

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

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

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

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

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

Схемы

В своей модели безопасности Database Engine использует схемы для упрощения отношений между пользователями и объектами; поэтому схемы имеют очень большое влияние на взаимодействие с Database Engine.

Начиная с SQL Server 2005, каждый объект принадлежит к схеме базы данных.

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

Схема базы данных — это отдельное пространство имен, существующее независимо от пользователя базы данных. Можно рассматривать схему как контейнер объектов. Схемы можно создавать и изменять в базе данных; пользователям может быть предоставлен доступ к схеме. Схема может принадлежать любому пользователю, и право владения схемой можно передавать.

Схема dbo – схема по умолчанию.

Одним из преимуществ схем является отделение пользователей от объектов. В SQL Server 2005 все объекты принадлежат к схемам, поэтому можно изменять и удалять пользователей базы данных без какого-либо влияния на объекты базы данных или ссылки на эти объекты из приложений базы данных.

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

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

Начиная с SQL Server 2005, жесткая связь между пользователями и схемами была отменена. Теперь Database Engine поддерживает именованные схемы, используя понятие принципала (администратора доступа), который имеет право доступа к объектам.

Принципал может быть: индивидуальными (неделимыми) или коллективными (групповым).

Индивидуальный принципал представляет одного пользователя, например, и виде учетной записи (логин) или учетной записи пользователя Windows. Групповой принципал может быть группой пользователей, например, ролью или группой Windows.

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

Отделение пользователей базы данных от схем дает большие преимущества, например, такие:

  • один принципал может владеть несколькими схемами;

  • несколько индивидуальных принципалов могут владеть одной схемой через их членство в роли или группе Windows;

  • удаление пользователя базы данных не требует переименования объектов, содержащихся в схеме этого пользователя.

Каждая база данных в системе имеет следующие схемы по умолчанию:

  • guest

  • dbo

  • INFORMATION_SCHEMA

  • sys.

  • и др.

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

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

Схема INFORMATION_SCHEMA содержит всю информацию о представлениях схемы.

Схема sys содержит системные объекты.