Защита информации в базах данных

Автор работы: Пользователь скрыл имя, 03 Февраля 2014 в 14:59, дипломная работа

Краткое описание

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

Содержание

ВВЕДЕНИЕ 3
ГЛАВА 1. ИСТОЧНИКИ ВОЗНИКНОВЕНИЯ И ПОСЛЕДСТВИЯ РЕАЛИЗАЦИИ УГРОЗ БАЗ ДАННЫХ 6
1.1. Классификация источников угроз 6
1.2. Последствия воздействия угроз и виды угрожающих воздействий 9
1.3. Реализации возникновения угроз безопасности баз данных 13
Выводы по первой главе 15
ГЛАВА 2. ЗАЩИТА БАЗ ДАННЫХ И СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ 16
2.1. Основные понятия о базах данных 16
2.2. Обеспечение безопасности информации в базах данных, обеспечиваемые СУБД 19
2.3. Особенности защиты информации в базах данных 24
Выводы по второй главе 29
ГЛАВА 3. ЗАЩИТА ДАННЫХ В СРЕДЕ MS SQL SERVER МУНИЦИПАЛЬНОГО ОБРАЗОВАНИЯ ЗАТО АЛЕКСАНДРОВСК 31
3.1. Защита и управление доступом 31
3.2. Администрирование системы безопасности 34
3.3. Предоставление и отмена предоставленных привилегий пользователю 36
Отмена предоставленных пользователям привилегий. 37
3.4. Реализация прав на доступ к объектам баз данных в среде MS SQL Server 38
Предоставление прав 38
Права на выполнение команд SQL 39
Выводы по третьей главе 43
ЗАКЛЮЧЕНИЕ 45
ГЛОССАРИЙ 48
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 50
СПИСОК СОКРАЩЕНИЙ 52
ПРИЛОЖЕНИЯ 53

Вложенные файлы: 1 файл

Защита информации в базах данных.doc

— 471.00 Кб (Скачать файл)

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

Рассмотрим  структуру базы данных в среде MS SQL Server 2005.

База данных включает следующие объекты:

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

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

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

Большинство функций  администрирования, таких как создание, удаление или редактирование объектов БД в SQL Server можно проводить тремя способами: при помощи специализированных диалоговых «мастеров», средствами SQL Server Management Studio или командами языка T-SQL (надмножество языка SQL-92. включающее дополнительные функции, операторы условия и цикла, хранимые процедуры и т. д.), выполняемыми из приложения или, например, из утилиты окна Server Management Studio. [3, 137]

Большая часть функций администрирования работы пользователей, серверов и баз данных сосредоточена в приложении SQL Server Management Studio, которое позволяет осуществлять, в том числе, следующие функции:

  • запускать и конфигурировать SQL Server;
  • управлять доступом пользователей к объектам БД;
  • создавать и модифицировать базы данных и их объекты, такие, как таблицы, индексы, представления и т. д.;
  • управлять выполнением заданий «по расписанию»;
  • управлять репликациями;
  • создавать резервные копии баз данных и журналов транзакций.

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

Система безопасности SQL Server имеет несколько уровней  безопасности:

  • операционная система; . SQL Server;
  • база данных;
  • объект базы данных.

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

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

Модель безопасности SQL Server включает следующие компоненты:

  • тип подключения к SQL Server;
  • пользователь базы данных;
  • пользователь (guest);
  • роли (roles).
    1. Администрирование системы безопасности

Для создания пользователя в среде MS SQL Server следует предпринять следующие шаги:

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

2. Добавить этого пользователя во все необходимые базы данных (процедура sp_adduser).

3. Предоставить ему в каждой базе данных соответствующие привилегии (команда GRANT).

Создание новой  учетной записи может быть произведено  с помощью системной хранимой процедуры:

sp_addlogin ,    [@login=]   'учетная_запись'

[, [@password=]    'пароль') ]

[, [@defdb=]   'база_данных_по_умолчанию']

После завершения аутентификации и получения идентификатора учетной записи «login ID» пользователь считается зарегистрированным, и ему предоставляется доступ к серверу. Для каждой базы данных, к объектам которой он намерен получить доступ, учетная запись пользователя «login» ассоциируется с пользователем «user» конкретной базы данных, что осуществляется посредством процедуры:

sp_adduser    [@loginame=]   'учетная_запись'

[, [@name_in_db=]   'имя_пользователя']

[, [@grpname=]   'имя_роли']

Отобразить  учетную запись Windows 2003 в имя пользователя позволяет хранимая процедура:

sp_grantdbaccess   [@login=]   'учетная_запись'

[, [@name_in_db=]'имя_пользователя']

Пользователь, который создает объект в базе данных (таблицу, хранимую процедуру, просмотр), становится его владельцем. Владелец объекта (database object owner dbo) имеет все права доступа к созданному им объекту. Чтобы пользователь мог создать объект, владелец базы данных «dbo» должен предоставить ему соответствующие права. Полное имя создаваемого объекта включает в себя имя создавшего его пользователя.

Владелец объекта  не имеет специального пароля или  особых прав доступа. Он неявно имеет полный доступ, но должен явно предоставить доступ другим пользователям. [3, 177]

SQL Server позволяет передавать права владения от одного пользователя другому с помощью процедуры:

sp_changeobjectowner   [@objname=]   'имя_объекта'

[@newowner=]   'имя_владельца'

Роль позволяет  объединить волну группу пользователей, выполняющих одинаковые функции.

В SQL Server реализовано два вида стандартных ролей: на уровне сервера и на уровне баз данных. При установке SQL Server создаются фиксированные роли сервера (например, «sysadmin» с правом выполнения любых функций SQL-сервера) и фиксированные роли базы данных (например, «db_owner» с правом полного доступа к базе данных или «db_accessadmin» с правом добавления и удаления пользователей). Среди фиксированных ролей базы данных существует роль «public», которая имеет специальное назначение, поскольку ее членами являются все пользователи, имеющие доступ к базе данных.

Можно включить любую учетную запись SQL Server «login» или учетную запись Windows 2003/XP в любую роль сервера.

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

В роль базы данных можно включить пользователей SQL Server, роли SQL Server, пользователей Windows 2003/XP.

Различные действия по отношению к роли осуществляются при помощи специальных процедур:

  • создание новой роли:

sp_addrole    [@rolename=]   'имя_роли'

[, [@ownername=]   'имя_владельца']

  • добавление пользователя к роли:

sp_addrolemember  (@rolename=]   'имя_роли',

[@membername=]   'имя_пользователя'

  • удаление пользователя из роли:

sp_droprolemember  [@rolename=]   'имя_роли',

[@membername=]   'имя_пользователя'

  • удаление роли:

sp_droprole  [@rolename=]   'имя_роли'

    1. Предоставление и отмена предоставленных привилегий пользователю

Оператор «GRANT»  применяется для предоставления привилегий в отношении поименованных объектов базы данных указанным пользователям. Обычно его использует владелец таблицы с целью предоставления доступа к ней другим пользователям. Оператор «GRANT» имеет следующий формат:

<предоставление_привилегий>:: =

GRANT  {<привилегия>[,...n]   |   ALL PRIVILEGES}

ON имя_объекта

ТО {<идентификатор_пользователя>  [,...п] |   PUBLIC}

[ WITH GRANT OPTION]

Параметр <привилегия> представляет собой:

<привилегия>::=

{SELECT   |   DELETE   |   INSERT   [(имя_столбца[,...n])]

|  UPDATE  [(имя_столбца[,...n])]}

|   REFERENCES   [(имя_столбца[,...n])]   |   USAGE   }

Из соображений  упрощения в операторе GRANT можно  указать ключевое слово «ALL PRIVILEGES», что позволит предоставить указанному пользователю все существующие привилегии без необходимости их перечисления. Кроме того, в этом операторе может указываться ключевое слово PUBLIC, означающее предоставление доступа указанною типа не только всем существующим пользователям, но также и всем тем, кто будет определен в базе данных впоследствии.

Параметр «имя_объекта» может использоваться как имя  таблицы базы данных, представления, домена, набора символов, проверки.

Благодаря параметру  «WITH GRANT OPTION», указанные в операторе «GRANT» пользователи имеют право передавать все предоставленные им в отношении указанного объекта привилегии другим пользователям, которые, в свою очередь, будут наделены точно таким же правом передачи своих полномочий. Если данный параметр не будет указан, получатель привилегии не сможет передать свои права другим пользователям. Таким образом, владелец объекта может четко контролировать, кто получил право доступа к объекту и какие полномочия ему предоставлены.

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

В языке SQL для  отмены привилегий, предоставленных  пользователям посредством оператора «GRANT», используется оператор «REVOKE». С помощью этого оператора могут быть отменены все или некоторые из привилегий, полученных указанным пользователем раньше. Оператор «REVOKE» имеет следующий формат:

<отмена_привилегий>::=

REVOKЕ [GRANT OPTION FOR]   {<привилегия>[, ...n]

|   ALL   PRIVILEGES}

ON имя_объекта

FROM {<идентификатор_пользователя> [,...n] | PUBLIC}

[RESTRICT   |   CASCADE]

Ключевое слово  «ALL PRIVILEGES» означает, что для указанного пользователя отменяются все привилегии, предоставленные ему ранее тем пользователем, который ввел данный оператор. Необязательная фраза «GRANT OPTION FOP» позволяет для всех привилегий, переданных в исходном операторе «GRANT» фразой «WITH GRANT OPTION», отменять возможность их передачи независимо от самих привилегий.

Если в операторе  указано ключевое слово «RESTRICT», успешное выполнение команды «REVOKE» возможно лишь в том случае, когда перечисленные в операторе привилегии не могут послужить причиной появления у каких-либо других пользователей так называемых «оставленных» привилегий. С помощью параметра «CASCADE» удаляются все привилегии, которые иначе могли бы остаться у других пользователей.

«Оставленными»  являются привилегии, сохранившиеся у пользователя, которому они в свое время были предоставлены с помощью параметра «GRANT OPTION».

Поскольку наличие  привилегии необходимо для создания определенных объектов, вместе с ее удалением можно лишиться права, за счет использования которого был образован тот или иной объект (подобные объекты называются «брошенными»). Если в результате выполнения оператора «REVOKE» могут появиться брошенные объекты (например, представления), оно будет отменено при условии, что в нем не указывается ключевое слово «CASCADE». Если ключевое слово «CASCADE» в операторе присутствует, то для любых брошенных объектов, возникающих при выполнении исходного оператора «REVOKE», будут автоматически выданы операторы «DROP». [3, 243]

    1. Реализация прав на доступ к объектам баз данных в среде MS SQL Server

Предоставление прав

Для управления разрешением пользователя на доступ к объектам базы данных используется команда:

<предоставление_привилегий>::=

GRANT  {  ALL   [   PRIVILEGES]   |   <привилегия>   [,...n]}

{   [ ( имя_столбца [, …n])]  ON { имя_таблицы |

имя_просмотра}   |  ON {имя_таблицы |

имя_просмотра  }   ([имя_столбца   [,…n])]

|   ON  {имя_хранимой_процедуры   |

имя_внешней_процедуры}}

TO { имя_пользователя   |  имя_группы  |

имя_роли}   [, ...n]

[WITH GRANT OPTION  ]

[AS   {имя_группы   |   имя_роли   } ]

Информация о работе Защита информации в базах данных