Технология 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.