Защита баз данных

Автор работы: Пользователь скрыл имя, 07 Ноября 2013 в 19:53, реферат

Описание работы

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

Файлы: 1 файл

Защита баз данных.docx

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

При восстановлении журнала  транзакций соответствующие транзакции применяются к базе данных. Это  означает, что если в начале недели была сделана резервная копия  всей базы, а потом ежедневно архивировались транзакции за каждый день, то при необходимости  восстановления поднимается состояние  базы на начало недели и на него последовательно  накатываются дампы журнала транзакций за все дни, предшествующие моменту  восстановления. MS SQL Server 6.5 имеет возможность  восстановления данных из журнала транзакций на произвольный момент времени (разумеется, отраженный в журнале) при помощи команды LOAD TRANSACTION STOPAT <t> или в  окне database backup and restore выбором опции until time. Все содержащиеся в этом дампе  транзакции, отмеченные завершившимися после этого момента, будут откачены.

Возможность планирования задач  резервного копирования во времени  и отсылки сообщений по e-mail в  случае успешного/неуспешного завершения рассматривалась нами при обсуждении SQL Executive.

MS SQL Server 6.5 предусматривает  возможность зеркалирования устройств,  переключения на зеркальные устройства  в качестве основных, выключения  зеркалирования и уничтожения  зеркального устройства также  "на лету", т. е. без остановки  штатной работы сервера по  обслуживанию пользовательских  запросов. Зеркалирование и дуплексирование  устройств для работы с MS SQL Server может быть также выполнено средствами Windows NT, а также на аппаратном уровне (поддержка различных RAID-систем и т. д.). По-видимому, следует предполагать, что реализация первого этапа кластерной технологии WolfPack будет поддерживать MS SQL Server 6.5 в отказоустойчивых кластерах из двух узлов. Появление следующей версии MS SQL Server должно обеспечить работу серверов в кластере как единого виртуального сервера.

Transfer Manager используется для  экспорта/импорта объектов и данных  БД на MS SQL Server между разными аппаратными  платформами, например между процессорами Intel и Alpha, а также между разными  версиями MS SQL Server, в частности из  более ранних в более поздние  или между равноценными (имеются  в виду 4.х и 6.х). Очень часто  проектирование объектов базы  ведется с помощью различных  графических средств, но проектная  документация может требовать  структуру объектов с точностью  до операторов DDL. Для получения  скриптов, описывающих создание  отдельного объекта базы данных, можно использовать команду transfer из контекстного меню объекта  или выбрать соответствующий  класс и имя объекта в Transfer Manager. Кроме этого, содержимое  данных может быть выгружено/загружено  при помощи утилиты bcp (см. табл. 1).

Вопросы безопасности доступа

Говоря о преимуществах  интеграции с операционной системой, MS SQL Server использует в своей работе сервисы безопасности Windows NT. Напомним, что Windows NT на сегодня сертифицирована  по классам безопасности С2/Е3. MS SQL Server может быть настроен на работу в  одном из трех режимах безопасности. Интегрированный режим предусматривает  использование механизмов аутентификации Windows NT для обеспечения безопасности всех пользовательских соединений. В  этом случае к серверу разрешаются  только трастовые, или аутентифицирующие, соединения (named pipes и multiprotocol). Администратор  имеет возможность отобразить группы пользователей Windows NT на соответствующие  значения login id MS SQL Server при помощи утилиты SQL Security Manager. В этом случае при входе  на MS SQL Server login name и пароль, переданные через DB-Library или ODBC, игнорируются. Стандартный  режим безопасности предполагает, что  на MS SQL Server будут заводиться самостоятельные login id и соответствующие им пароли. Смешанный режим использует интегрированную  модель при установлении соединений по поименованным каналам или  мультипротоколу и стандартную  модель во всех остальных случаях.

MS SQL Server обеспечивает многоуровневую  проверку привилегий при загрузке  на сервер. Сначала идентифицируются  права пользователя на установление  соединения с выбранным сервером (login name и пароль) и выполнение  административных функций: создание  устройств и баз данных, назначение  прав другим пользователям, изменение  параметров настройки сервера  и т.д. Максимальными правами  обладает системный администратор.  На уровне базы данных каждый  пользователь, загрузившийся на  сервер, может иметь имя пользователя (username) базы и права на доступ  к объектам внутри нее. Имеется  возможность отобразить нескольких login id на одного пользователя базы  данных, а также объединять пользователей  в группы для удобства администрирования  и назначения сходных привилегий. По отношению к объектам базы  данных пользователю могут быть  назначены права на выполнение  различных операций над ними: чтение, добавление, удаление, изменение,  декларативная ссылочная целостность  (DRI), выполнение хранимых процедур, а также права на доступ  к отдельным полям. Если этого  недостаточно, можно прибегнуть  к представлениям (views), для которых  сказанное остается справедливым. Наконец, можно вообще запретить  пользователю непосредственный  доступ к данным, оставив за  ним лишь права на выполнение  хранимых процедур, в которых  будет прописан весь сценарий  его доступа к базе. Хранимые  процедуры могут создаваться с опцией WITH ENCRYPTION, которая шифрует непосредственный текст процедуры, хранящийся обычно в syscomments. Права на выполнение некоторых команд (создание баз, таблиц, умолчаний, правил, представлений, процедур, резервное копирование баз и журналов транзакций) не являются объектно-специфичными, поэтому они назначаются системным администратором сервера или владельцем (создателем) базы данных при редактировании базы данных. Администрирование пользовательских привилегий обычно ведется в SQL Enterprise Manager, тем не менее в Transact-SQL имеются хранимые процедуры (sp_addlogin, sp_password, sp_revokelogin, sp_addalias, sp_adduser) и операторы (GRANT, REVOKE), которые позволяют осуществлять действия по созданию пользователей, назначению и отмене прав при выполнении скриптов. Дополнительную возможность администрирования привилегий предоставляют рассмотренные нами выше SQL-DMO.

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

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

• операционная система;

• SQL Server;

• база данных;

• объект базы данных.

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

• системный администратор, имеющий неограниченный доступ;

• владелец БД, имеющий полный доступ ко всем объектам БД;

• владелец объектов БД;

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

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

• тип подключения к SQL Server;

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

• пользователь (guest);

• роли (roles).

Тип подключения к SQL Server

При подключении (и в зависимости  от типа подключения) SQL Server поддерживает два режима безопасности:

• режим аутентификации Windows NT;

• смешанный режим аутентификации.

В режиме аутентификации Windows NT используется система безопасности Windows NT и ее механизм учетных записей. Этот режим позволяет SQL Server использовать имя пользователя и пароль, которые  определены в Windows, и тем самым  обходить процесс подключения к SQL Server. Таким образом, пользователи, имеющие действующую учетную  запись Windows, могут подключиться к SQL Server, не сообщая своего имени и  пароля. Когда пользователь обращается к СУБД, последняя получает информацию об имени пользователя и пароле из атрибутов системы сетевой безопасности пользователей Windows (которые устанавливаются, когда пользователь подключается к Windows).

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

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

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

Единственным исключением  из этого правила является пользователь guest (гость). Особое имя пользователя guest разрешает любому подключившемуся  к SQL Server пользователю получить доступ к этой базе данных. Пользователю с  именем guest назначена роль public.

Права доступа

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

• GRANT. Позволяет выполнять  действия с объектом или, для команды  — выполнять ее;

• REVOKE. Аннулирует права  доступа для объекта или, для  команды — не позволяет выполнить  ее;

• DENY. He разрешает выполнять  действия с объектом (в то время, как команда REVOKE просто удаляет эти  права доступа).

Объектные права доступа  позволяют контролировать доступ к  объектам в SQL Server, предоставляя и аннулируя  права доступа для таблиц, столбцов, представлений и хранимых процедур. Чтобы выполнить по отношению  к некоторому объекту некоторое  действие, пользователь должен иметь  соответствующее право доступа. Например, если пользователь хочет  выполнить оператор SELECT * FROM table, то он должен и меть права выполнения оператора SELECT для таблицы table.

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

CREATE DATABASE — право создения  базы данных;

CREATE DEFAULT — право создшия  стандартного значения для столбца  таблицы;

CREATE PROCEDURE — право содания  хранимой процедуры.

CREATE ROLE — право создания  гоавила для столбца таблицы;

CREATE TABLE — право создания  таблицы;

CREATE VIEW — право создания  представления;

BACKUP DATABASE — право создшия  резервной копии;

BACKUP TRANSACTION — праве создания  резервной копии журнала транзакций.

Роли

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

• роли уровня сервера;

• роли уровня базы данных.

Роли уровня сервера

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

В SQL Server существуют следующие  типы ролей уровня сервера:

Sysadmin — дает право выполнить  любое действие в SQL Server;

Serveradmin — дает право  изменить параметры SQL Server и завершить  его работу;

Setupadmin — дает право  инсталлировать систему репликации  и управлять выполнением расширенных  хранимых процедур;

Securityadmin — дает право  контролировать параметры учетных  записей для подключения к  серверу и предоставлять права  доступа к базам данных;

Processadmin — дает право  управлять ходом выполнения процессов  в SQL Server;

Dbcreator — дает право  создавать и модифицировать базы  данных;

Diskadmin — дает право  управлять файлами баз данных  на диске.

Роли уровня базы данных

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

В SQL Server существует три типа ролей:

• заранее определенные роли;

• определяемые пользователем  роли;

• неявные роли.

Заранее определенными являются стандартные роли уровня БД. Эти  роли имеет каждая база данных SQL Server. Они позволяют легко и просто передавать обязанности.

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

db_owner — определяет полный  доступ ко всем объектам базы  данных, может удалять и воссоздавать  объекты, а также присваивать  объектные права другим пользователям.  Охватывает все функции, перечисленные  ниже для других стандартных  ролей уровня базы данных;

db_accessadmin — осуществляет  контроль за доступом к базе  данных путем добавления или  удаления пользователей в режимах  аутентификации;

db_datareader — определяет  полный доступ к выборке данных (с помощью оператора SELECT) из  любой таблицы базы данных. Запрещает  выполнение операторов INSERT, DELETE и  UPDATE для любой таблицы БД;

db_datawriter — разрешает выполнять  операторы INSERT, DELETE и UPDATE для любой  таблицы базы данных. Запрещает  выполнение оператора SELECT для  любой таблицы базы данных;

db_ddladmin — дает возможность  создавать, модифицировать и удалять  объекты базы данных;

db_securityadmin — управляет  системой безопасности базы данных, а также назначением объектных  и командных разрешений и ролей  для базы данных;

db_backupoperator — позволяет  создавать резервные копии базы  данных;

db_denydatareader — отказ в  разрешении на выполнение оператора  SELECT для всех таблиц базы данных. Позволяет пользователям изменять  существующие структуры таблиц, но не позволяет создавать  или удалять существующие таблицы;

db_denydatawriter — отказ в  разрешении на выполнение операторов  модификации данных (INSERT, DELETE и UPDATE) для любых таблиц базы данных;

public — автоматически назначаемая  роль сразу после предоставления  права доступа пользователя к  БД.

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

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

• стандартная роль;

• роль уровня приложения.

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

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