Установление привилегий доступа к данным

Технология ADO

Механизм доступа к данным ADO был предложен компанией Microsoft. Этот механизм построен на использовании интерфейсов OLE DB. Набор интерфейсов OLE DB присутствует во всех операционных системах компании Microsoft, что делает доступ к данным простым. Технология ADO построена на технологии COM, т.е. все объекты и интерфейсы ADO являются объектами и интерфейсами СОМ.

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

Компонент ADOCommand позволяет выполнять команды на языке провайдера данных.


Привилегии представляют собой права доступа к БД. Управление привилегиями заключается в их установке и удалении. После создания объекта БД (например, таблицы) доступ к ней разрешен только создателю и системному администратору, имеющему имя SYSDBA. Для доступа к БД остальных пользователей им нужно назначить соответствующие привилегии. Сразу после появления нового пользователя этот пользователь имеет минимальные права доступа: ему разрешено только войти в БД, указав свое имя и пароль, однако ни один объект ему не доступен. Чтобы обеспечить возможность активной работы с БД, нужно определить (переопределить) привилегии.

Установку привилегий выполняет инструкция:

GRANT

<Список описателей вида доступа>

ON [TABLE] {<Имя таблицы> | <Имя просмотра>}

TO {<Пользователь> | <Список пользователей>} |

EXECUTE ON PROCEDURE <Имя процедуры>

TO {<Пользователь> | <Список пользователей>};

<Пользователь> =

PROCEDURE <Имя процедуры>

| TRIGGER <Имя триггера>

| VIEW <Имя просмотра>

| [USER] <Имя пользователя>

| PUBLIC

<Список пользователей> =

[] <Имя пользователя 1>

[, [USER] <Имя пользователя N>]

[WITH GRANT OPTION]

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

Описатель PUBLIC означает, что привилегия устанавливается для всех пользователей. Описатель WITH GRANT OPTION означает, что пользователь может устанавливать предоставленные ему привилегии другим пользователям.

В качестве описателей, определяющих вид доступа, указываются следующие:

- ALL – все права доступа,

- SELECT – только чтение,

- DELETE – удаление,

- INSERT – вставка,

- UPDATE – модификация.

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

Пример:

GRANT ALL ON Person TO Chief;

GRANT SELECT ON Person TO Manager;

GRANT SELECT, UPDATE (Name, BDay) ON Person TO TopManager

Права доступа устанавливаются к таблице Person. Пользователь с именем Chief получает полные права доступа к таблице. Пользователь с именем Manager может только читать данные, а пользователь TopManager, кроме того, имеет право редактировать столбцы Name и BDay.

Пример:

GRANT ALL ON Store TO Chief, Manager, TopManager;

GRANT SELECT ON List TO PUBLIC;

Полные права доступа к таблице Store получают три пользователя: Chief, Manager, TopManager. Читать записи из таблицы List разрешается всем пользователям.

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

Пример:

REVOKE ALL ON Person TO Chief;

Пользователь с именем Chief лишается права доступа к таблице Person.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: