Организация управления правами доступа в современных субд oracle10g и ms sql server 2008

Вид материалаКурсовая работа

Содержание


2.3 Серверные роли и роли базы данных
Глава 3. Разработка программного приложения для управления правами доступа. 3.1 Выбор инструментальных средств
3.2 Структура и функциональность программного комплекса.
3.3 Руководство пользователя программы «OracleAdmin»
3.4 Руководство пользователя программы «MSSQLAdmin»
Список литературы
Подобный материал:
1   2   3   4   5

2.3 Серверные роли и роли базы данных


До версии 7.0 в SQL Server наличествовала концепция групп - объединений пользователей, обладающих определенным набором прав, которые вы могли в совокупности назначить новому пользователю, просто сделав его членом данной группы. Такая концепция в корне отличалась от принятой в NT, где каждый пользователь мог принадлежать более чем к одной группе, что позволяло сочетать при необходимости различные права. В SQL Server 6.5 (и более ранних версиях) каждый пользователь мог принадлежать только к одной группе определенной базы данных.

В итоге во времена, предшествующие появлению SQL Server 7.0, все группы в SQL Server делились на три категории:

- группы с часто изменяемыми правами доступа пользователей;

- группы с небольшими отличиями от главной группы;

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

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

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

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

Роли бывают двух видов:

- серверные роли (server roles);

- роли базы данных (database roles).

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

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

2.3.1 Серверные роли

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



Роль

Сущность

sysadmin

Данная роль предполагает возможность выполнения любых действий на вашем SQL Server. Любой пользователь, принадлежащий к данной роли, является, тем самым, пользователем sa для вашего сервера. Появление этой роли подразумевает исчезновение бюджета sa в будущем - и действительно, в онлайновом справочнике вы можете встретить упоминание о намерениях Microsoft в дальнейшем его ликвидировать.

Очевидно, что группа Administrators в NT связывается с ролью sysadmin на SQL Server автоматически. Это означает, что всякий, кто является членом группы администраторов вашего сервера, также имеет права доступа sa к данным SQL Server. При желании, вы можете удалить группу администраторов NT из роли sysadmin чтобы обезопасить систему и избавиться от лишней лазейки

serveradmin

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

setupadmin

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

securityadmin

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

processadmin

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

dbcreator

Возможности этой роли ограничены созданием и изменением баз данных

diskadmin

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

bulkadmin

Данная роль является несколько странной. Она явно задается для

предоставления прав на выполнение команды BULK INSERT, которая в противном случае может быть выполнена только лицом с правами sysadmin. Привилегии на использование этого оператора действительно нельзя передать с помощью команды GRANT, Помните также о том, что добавление пользователя в группу bulkadmin предоставляет ему права только на выполнение оператора BULK INSERT, но само по себе не дает возможности применять его к конкретным таблицам. Из этого следует, что помимо разрешения на выполнение задачи BULK INSERT, пользователю также необходимо предоставить разрешение на применение оператора INSERT к каждой таблице, для которой требуется выполнить оператор BULK INSERT, Кроме того, вам необходимо убедиться, что члены данной роли обладают необходимыми правами на применение оператора SELECT для всех нужных вам таблиц



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

Применение ролей базы данных ограничено областью единственной базы данных - то, что пользователь принадлежит к роли cib_datareader в одной базе данных, еще не означает, что он будет принадлежать к этой роли в другой базе данных. Роли базы данных делятся в свою очередь на две подкатегории: фиксированные и определяемые пользователем.

Фиксированные роли базы данных

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

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

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

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


Глава 3. Разработка программного приложения для управления правами доступа.

3.1 Выбор инструментальных средств


В качестве среды разработки программного обеспечения была выбрана

CodeGear RAD Studio 2009 - новая версия среды быстрой разработки приложений (RAD) для Microsoft Windows. Это единственная интегрированная среда разработки (IDE), которая поддерживает быструю разработку как Windows, так и .NET-приложений для Microsoft Windows 2000, XP и Vista. Подобная универсальность позволяет разработчикам строить Web, клиент/серверные и десктоп Windows-приложения для всех трех ОС и использовать такие приложения на любой из этих платформ. CodeGear RAD Studio дает разработчикам гибкость в выборе операционной системы, которая наиболее полно удовлетворяет их требованиям при создании приложения для нескольких ОС Windows, включая программы для Windows Vista и Web-приложения.
Возможности выбранной среды разработки:
- Поддержка языка Delphi для разработки в среде Microsoft .NET 2.0 (совместимо с .NET 3.0) и ASP.NET 2.0. ASP.NET представляет собой набор технологий в рамках .NET framework для создания Web-приложений и XML Web-сервисов.
- Delphi для .NET имеет поддержку параметризованных типов, позволяющую разработчикам .NET применять Delphi для создания и использования классов, используя любой тип структуры данных в качестве параметров.
- Обновленная архитектура доступа к базам данных dbExpress 4 с поддержкой ADO.NET 2.0. dbExpress 4 - это единое решение для доступа к базам данных для .NET и Windows с поддержкой ADO.NET.

Соединение с базой данных, как с Oracle так и MS SQL Server, производится с помощью компонентов ADO.

Преимущества ADO по сравнению с другими технологиями.

Технология ADO предлагает разработчику удобный прикладной интерфейс для OLE DB. ADO удобна в обращении, так как предоставляет объекты Automation, скрывающие интерфейсы OLE DB, что позволяет программисту уделять основное внимание решаемым задачам, а не сложностям технологии OLE DB. ADO-объекты разрешается применять на любой платформе, которая поддерживает СОМ и Automation, включая языки сценария Microsoft Visual Basic Scripting Edition (VBScript) и Microsoft JScript. А это означает, что ADO доступна как в приложениях для Интернета - через технологии типа Active Server Pages (ASP), так и в средах разработки персональных приложений.

ADO-набор данных допустимо отсоединять от источника данных и передавать другим приложениям, при этом возможно изменение данных набора в отрыве от сети и источника данных. В объектной модели ADO существенно меньше объектов, и он проще в обращении по сравнению с другими объектами доступа данным, например DAO или RDO.

3.2 Структура и функциональность программного комплекса.


Разработанный программный комплекс состоит из двух независимо работающих программ: «OracleAdmin» (для работы с правами доступа в СУБД Oracle) и «MSSQLAdmin» (для работы с правами доступа в СУБД MS SQL Server), включает в себя следующий функционал:
  • Создание, удаление, изменение пользователей,
  • Создание, удаление, изменение ролей,
  • Назначение системных привилегий пользователю или роли,
  • Назначение объектных привилегий пользователю или роли,
  • Фильтрация списка пользователей и ролей.
  • Название пользователей и ролей символами кириллицы.



3.3 Руководство пользователя программы «OracleAdmin»


Главное окно программы «OracleAdmin» (рис. 1) содержит информацию о всех пользователях СУБД. Нажимая левую кнопку мыши по одному из пользователей, находящемся в списке, на вкладке «Общие» отображается общая информация, относящаяся к данному пользователю: Логин, ФИО, Телефонный номер, Описание (поле, предназначенное для хранения дополнительной информации о пользователе: № паспорта, должность, отдел и т.д.). Для редактирования или изменения информации, необходимо внести изменения в соответствующие поля формы.



Рис. 1 «Главное окно программы OracleAdmin»

На вкладке «Роли» (рис. 2) содержится информация, о всех ролях, присвоенных пользователю. На форме пользователь может просмотреть доступные пользователю роли, какие роли предоставлены. Галочка напротив предоставленной роли говорит о том, что роль была предоставлена с параметром «Admin Option», т.е. обладатель роли может предоставлять данную роль другим пользователям БД. С помощью кнопок «\/» и «/\» можно изменять набор предоставленных ролей. Для того, чтобы предоставить роль пользователю, необходимо выбрать нужную роль из списка «Доступные» и нажать кнопку «\/». Соответственно, для удаления роли из списка «Предоставленные» необходимо выбрать предоставленную роль и нажать на кнопку «/\».



Рис. 2 «Роли пользователя»

и нажать на кнопку «Применить», иначе изменения не вступят в силу. Кнопка «Отменить» служит для отмены внесения изменений.

На вкладке «Системные привилегии» (рис. 3) производятся аналогичные операции, как и на вкладке «Роли».



Рис. 3 «Системные привилегии»

На вкладке «Объектные привилегии» (рис. 4) перед пользователем появляется информация в виде дерева о всех объектах СУБД: Схемы, типы, таблицы, просмотры, процедуры, функции, синонимы, последовательности.



Рис. 4 «Объектные привилегии»

При нажатии на объекте, в поле «Доступные привилегии» появляется список привилегий, которые можно предоставить пользователю. Для этого необходимо выбрать нужный объект, привилегию, и нажать на кнопку «\/», после чего предоставленная привилегия появится в таблице «Предоставленные», в которой отображаются: название привилегии (столбец привилегия), название схемы (столбец «Схема»), в которой находится объект, и название самого объекта (столбец «Объект»), на который предоставлена привилегия.

3.4 Руководство пользователя программы «MSSQLAdmin»


Первая закладка программы «MSSQLAdmin» (рис. 5) содержит информацию о всех пользователях СУБД. Для того чтобы внести изменения необходимо выделить в таблице нужного вам пользователя, и в поля заполнения внести новые значения. Также в правом верхнем углу существует динамический поиск по логину, имени, телефону и комментарию. В данной таблице вы можете посмотрь имя логина в базу данных, имя пользователя, телефон и комментарий(поле, предназначенное для хранения дополнительной информации о пользователе: № паспорта, должность, отдел и т.д.).



Рис.5 Информация о пользователе


На вкладке «Доб.Роли» (Рис.6) Вы имеете возможность для создания объектной роли. Для того чтобы создать роль вам необходимо ввести имя новой роли, возможное пояснение, выбрать базу данных, тип объекта и объект, также выбираем те возможности которые мы хотим предоставить пользователю (Delete,Insert,Update).

Для удаление роли необходимо выбрать роль из таблицы и нажать кнопку «удалить»

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



Рис. 6 Добавление роли

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



Рис 7. Присвоение роли


Заключение


В результате проделанной работы было изучено управление правами доступа в CУБД Oracle 10g и MS SQL Server 2008.

Организация безопасности в Oracle позволяет гибко настроить права доступа среди пользователей системы. Для этого в СУБД хранятся привилегии, а также существует возможность создавать пользовательские наборы привилегий – роли. Все данные, касающиеся безопасности содержатся в представлениях DBA_ и являются глобальными, хранятся в самом ядре Oracle. Записи в представлениях DBA_ содержат исчерпывающую информацию о хранимых объектах. Для получения данных о привилегиях, пользователях или объектах базы данных достаточно обратиться с помощью SQL-запроса к соответствующему представлению.

В отличие от Oracle 10g, в MS SQL Server данные о ролях и привилегиях на объекты непосредственно хранятся в базе данных, к которой принадлежит объект, что усложняет сбор сведений о предоставленных ролях и привилегиях определенному пользователю. Для того чтобы, получить список возможных привилегий, ролей, принадлежностей роль-пользователь необходимо выполнить целый ряд SQL-запросов.

Для упрощения администрирования БД, был написан программный комплекс, состоящий из 2-х утилит, позволяющих управлять правами доступа в Oracle и MS SQL Server. Для работы с программой не требуется знание языка запросов SQL, а также его процедурного расширения PL/SQL . Включена возможность фильтрования списка пользователей, ролей, привилегий. Поддерживается название пользователей и ролей символами кириллицы. Утилиты могут найти свое применение на любом предприятии, использующем Oracle или MS SQL.

Таким образом, все задачи выполнены, цели достигнуты.

Список литературы

  1. Архангельский А. Я. «Программирование в Delphi 6» – М.:ЗАО «Издательство БИНОМ», 2003.
  2. Терьо М., Кармайкл Р. «Oracle 9i, Администрирование баз данных» – М.:Издательство «Лори», 2005.
  3. Роберт Вьейра «SQL Server 2005, программирование» - М.: БИНОМ. Лаборатория знаний, 2006.
  4. Microsoft TechNet. SQL Server 2008, Документация. [ссылка скрыта ]. (20.04.2009)
  5. Горнштейн Д., Тамаркин Б. Возможности, достоинства и слабости СУБД MS SQL Server 2005 (Yukon) и Oracle 10g. (17.04.2007). [ss.ru/cs/2006/1/MSSQLvsORA/MSSQLvsORA.asp]. (13.05.2009)