Рис. 1
защита несанкционированный авторский база данный
4. MS SQL Server
4.1 Организация защиты
В критических для бизнеса приложениях, когда сервер СУБД должен быть постоянно доступен для клиентов, большинство профилактических работ по поддержке базы данных приходится выполнять фактически в режиме on-line. MS SQL Server обладает возможностями динамического резервного копирования данных, т. е. даже когда эти данные используются и изменяются клиентами. В случае сбоя оборудования, отключения питания и т.д. механизм автоматического восстановления MS SQL Server восстанавливает все базы данных до их последнего целостного состояния без вмешательства администратора. Все завершенные, но не отраженные в базе транзакции из журнала транзакций применяются к базе данных (это фактически то, что происходит при событии chekpoint), а незавершенные транзакции, т.е. те, которые были активными на момент сбоя, вычищаются из журнала.
MS SQL Server 6.5 предусматривает возможность зеркалирования устройств, переключения на зеркальные устройства в качестве основных, выключения зеркалирования и уничтожения зеркального устройства также "на лету", т.е. без остановки штатной работы сервера по обслуживанию пользовательских запросов. Зеркалирование и дуплексирование устройств для работы с MS SQL Server может быть также выполнено средствами Windows NT, а также на аппаратном уровне (поддержка различных RAID-систем и т.д.). По-видимому, следует предполагать, что реализация первого этапа кластерной технологии WolfPack будет поддерживать MS SQL Server 6.5 в отказоустойчивых кластерах из двух узлов. Появление следующей версии MS SQL Server должно обеспечить работу серверов в кластере как единого виртуального сервера.
5. Вопросы безопасности доступа
Говоря о преимуществах интеграции с операционной системой, 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), выполнение хранимых процедур, а также права на доступ к отдельным полям.
Управление доступом
Система безопасности 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).
6. Пользователи базы данных
Понятие пользователь базы данных относится к базе (или базам) данных, к которым может получить доступ отдельный пользователь. После успешного подключения сервер определяет, имеет ли этот пользователь разрешение на работу с базой данных, к которой обращается.
Единственным исключением из этого правила является пользователь 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 -- праве создания резервной копии журнала транзакций.
7. Роли
Назначение пользователю некоторой рели позволяет ему выполнять все функции, разрешенные этой ролью. По сути роли логически группируют пользователей, имеющих одинаковые права доступа. В SQL Server есть следующие типы ролей:
* роли уровня сервера;
* роли уровня базы данных.
Роли уровня сервера
С помощью этих ролей предоставляются различные степени доступа к операциям и задачам сервер. Роли уровня сервера заранее определены и действуют в пределах сервера. Они не зависят от конкретных баз данных, и их нельзя модифицировать.
В SQL Server существуют следующие типы ролей уровня сервера:
Sysadmin -- дает право выполнить любое действие в SQL Server;
Serveradmin -- дает право изменить параметры SQL Server и завершить его работу;
Setupadmin -- дает право инсталлировать систему репликации и управлять выполнением расширенных хранимых процедур;
Securityadmin -- дает право контролировать параметры учетных записей для подключения к серверу и предоставлять права доступа к базам данных;
Processadmin -- дает право управлять ходом выполнения процессов в SQL Server;
Dbcreator -- дает право создавать и модифицировать базы данных;
Diskadmin -- дает право управлять файлами баз данных на диске.
Роли уровня базы данных
Роли уровня базы данных позволяют назначить права для работы с конкретной базой данных отдельному пользователю или группе. Роли уровня базы данных можно назначать учетным записям пользователей в режиме аутентификации Windows или SQL Server. Роли могут быть и вложенными, так что учетным записям можно назначить иерархическую группу прав доступа.
В SQL Server существует три типа ролей:
* заранее определенные роли;
* определяемые пользователем роли;
* неявные роли.
Заранее определенными являются стандартные роли уровня БД. Эти роли имеет каждая база данных SQL Server. Они позволяют легко и просто передавать обязанности.
8. Безопасность данных в Oracle 7
8.1 Ограничение доступа
Если мы уверены, что подключаться к нашей базе данных могут лишь уполномоченные пользователи и что они могут запускать только те модули, на выполнение которых им явно предоставлено право, то нужно подумать о следующем уровне безопасности -- ограничении доступа этих пользователей к данным.
Огромным шагом вперед в обеспечении безопасности данных стало введение ролей в Oracle7. До Oracle7 каждому пользователю приходилось явно предоставлять права доступа к каждому объекту базы данных, который ему разрешено было использовать. Этот процесс упрощается за счет того, что доступ к совокупности объектов предоставляется роли, а затем право на использование этой роли предоставляется соответствующим лицам. С помощью команды GRANT мы можем предоставить пользователям право выполнять над объектами БД (например, над таблицами) операции SELECT, INSERT, UPDATE и DELETE. Однако само по себе это не обеспечивает значительной гибкости. Мы можем ограничить доступ пользователей частями таблицы, разделив ее по горизонтали (ограничив пользователя определенными строками), по вертикали (ограничив его определенными столбцами) или и по горизонтали, и по вертикали. Как это сделать?
Вернемся к нашему примеру с таблицей PAYROLL. Мы не хотим, чтобы все пользователи видели столбец SALARY, и желаем ограничить доступ пользователей так, чтобы они могли видеть только записи о сотрудниках их отдела.
Мы можем определить представление и предоставить пользователям доступ к этому представлению, а не к базовой таблице (PAYROLL). Они смогут запрашивать данные этой таблицы лишь через представление, которое ограничивает их доступ. Определение такого представления приведено ниже.
Таблица
PAYROLL
|
ID |
NAME |
DEFT |
PAYMENT_PERIOD |
SALARY |
|
|
1 |
JONES |
10 |
WEEKLY |
120 |
|
|
2 |
K1RKUP |
10 |
MONTHLY |
900 |
|
|
3 |
DAVIES |
10 |
WEEKLY |
150 |
|
|
4 |
ARMSTRONG |
20 |
MONTHLY |
1030 |
|
|
5 |
KEMP |
20 |
MONTHLY |
1005 |
|
|
6 |
FISHER |
30 |
WEEKLY |
150 |
CREATE VIEW vjpayroll AS SELECT id
, name, dept
, payment_period FROM payroll WHERE dept = (SELECT dept
FROM mysys_users WHERE username = USER) WITH CHECK OPTION;
Столбец SALARY в этом примере не включен в представление, поэтому зарплату в нем увидеть нельзя, а фраза WHERE гарантирует, что пользователи смогут запрашивать данные из таблицы PAYROLL только по своему отделу.
По поводу этого решения надо сказать следующее. Во-первых, мы должны сделать так, чтобы пользователи не могли изменить свой отдел, обновив значение MYSYSJUSERS, и затем запросить записи из другого отдела. Во-вторых, с помощью этого представления пользователи могли бы обновлять, вставлять и удалять даже не относящиеся к их отделу строки таблицы PAYROLL, если бы мы не отключили эту функцию с помощью фразы WITH CHECK OPTION.
9. Юридическая защита авторских прав на базы данных
Вопросы правовой защиты программ для ЭВМ и базы данных от незаконного использования являются очень актуальными в настоящий момент. Для иллюстрации этого приведем несколько фактов. По данным Ассоциации производителей компьютерного обеспечения, уровень компьютерного пиратства в России составляет 94%. Уровень пиратства в странах Запада существенно ниже: в Германии - 50%, в США - 35%. По данным МВД РФ, потери российского бюджета от неуплаты налогов продавцами компьютерных программ составляют 85 млн. долл. Деньги, полученные от продажи, часто уходят в распоряжение криминальных структур. Кроме того, 105 млн. долл. теряют российские предприятия. В области разработки компьютерных программ и баз данных в стране работает около шести тысяч фирм, обеспечивающих занятость более 200 тыс. человек. Данной сфере производства грозит стагнация - программисты попросту теряют стимулы к созданию новых передовых программных продуктов.