СУБД INFORMIX
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: реферат модель, доклад на тему
| Добавил(а) на сайт: Селестина.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата
CREATE TABLE emp_data
(
emp_num integer,
emp_name char(20),
hired date,
id-code char (10),
salary decimal(4,2)
)
Поскольку таблица содержит конфиденциальные данные, то сразу после ее создания следует выполнить оператор REVOKE, который запрещает доступ к данным:
REVOKE ALL ON emp_data FROM PUBLIC
Для отдельных сотрудников отдела кадров и менеджеров выполняется оператор типа:
GRANT SELECT ON emp_data TO andrew_p, michael_d
Таким образом, некоторым пользователям позволено видеть все столбцы.
В общих чертах синтаксическая запись правил безопасности доступа к данным выглядит следующим образом:
GRANT список_привилегий_через_запятую [(список_атрибутов через_запятую)]
ON выражение TO список_пользователей_через_запятую
Для менеджеров, которые должны вводить некоторые сведения о служащих, необходимо выполнить оператор типа:
GRANT SELECT, UPDATE, INSERT, DELETE (salary, hired) ON emp_data TO alex_v, nataly_d
Этот оператор позволяет получить доступ к данным о зарплате и дате приема на роботу служащих. Для некоторых пользователей из отдела кадров, которые должны составлять технические данные о сотрудниках, нужно выполнить оператор типа:
GRANT SELECT, UPDATE, INSERT, DELETE (emp_num,emp_name,id-code) ON emp_data TO nataly_d
Привилегии в системном каталоге
Привилегии регистрируются в таблицах системного каталога. Каждый пользователь, обладающий привилегией CONNECT, может запросить информацию из таблиц системного каталога, чтобы определить, какие и кому предоставлены привилегии.
Привилегии базы данных регистрируется в таблице sysusers, в который первичным ключом является идентификатор пользователя, а в другом столбце находится символ C (CONNECT), R (RESOURCE) или D (DBA), обозначающий уровень привилегий. Общедоступные привилегии отображены под именем пользователя public (в нижнем регистре).
Привилегии уровня таблицы находятся в таблице systabauth, в которой используется составной первичный ключ, включающий номер таблицы, идентификатор пользователя, предоставившего привилегии на таблицу и идентификатор пользователя, получившего их. В столбце tabauth привилегии закодированы в виде шестибуквенного списка следующим образом (дефис обозначает не предоставленную привилегию):
s – SELECT
u – UPDATE
- – * привилегия на столбцы
i – INSERT
d – DELETE
x – INDEX
a – ALTER
r – REFERENCES (обращение к заданной таблице в ограничениях целостности)
Таким образом, полный комплект привилегий выглядит как su-idxar.
Например, набор -u------ говорит, что пользователь обладает только привилегией UPDATE.
Если в третьей позиции присутствует звездочка, то это означает, что для данной таблицы и пользователя существуют еще какие-то привилегии уровня столбца. Конкретные привилегии регистрируются в таблице syscolauth. Ее первичный ключ составлен из номера таблицы, идентификатора пользователя, предоставившего привилегии, получившего привилегии, и номера столбца. Единственный атрибут – двухбуквенный список, показывающий тип привилегии: s-, -u или su.
Привилегии и представления
При создании представления ядро БД проверяет привилегии пользователя на соответствующие таблицы и представления. При использовании же представлений проверяются только привилегии на само представление.
Привилегии при создании представления
При создании представления ядро БД проверяет наличие у пользователя всех привилегий, необходимых для выполнения оператора SELECT в определении представления. Если таких привилегий нет, представление не создается. Эта проверка не позволяет пользователю получить несанкционированный доступ к таблице путем создания представления для нее и обращения к представлению. После создания представления ядро БД предоставляет его создателю и владельцу, как минимум, привилегию SELECT для этого представления. Оно не становится автоматически общедоступным, как это происходит с таблицей. Ядро БД определяет определение представления и выясняет, является ли оно обновляемым. Если да, то создатель представления получает привилегии INSERT, DELETE и UPDATE для этого представления при наличии этих привилегий на порождающей таблице или представлении. Иными словами, если создаваемое представление является обновляемым, то ядро БД копирует привилегии INSERT, DELETE и UPDATE создателя представления и предоставляет их ему на новом представлении. Если для порождающей таблицы создатель представления располагает только привилегией INSERT, то он получит на представление только эту привилегию и т.д. Эта проверка не позволяет пользователям получить какие-либо привилегии кроме тех, которые у него уже есть.
Поскольку для представления нельзя выполнять операторы ALTER TABLE и CREATE INDEX, привилегии ALTER и INDEX никогда не распространяются на представления.
Привилегии при использовании представления
При попытке использовать представление, ядро БД проверяет лишь те привилегии, которые относятся лишь к самому представлению. Оно не проверяет права на доступ к определяющим его таблицам. Привилегии создателя представления уже отмечались ранее. Для других пользователей привилегии определяются создателем или тем, у кого есть привилегия WITH GRANT OPTION. Это означает, что можно создать таблицу и отменить ее общедоступность. Затем можно предоставить ограниченные привилегии на доступ к таблице через представления.
Ниже приводится синтаксис оператора GRANT:
GRANT список_привилегий_через_запятую ON объект
TO список_пользователей_через_запятую [WITH GRANT OPTION]
Директива WITH GRANT OPTION наделяет указанных пользователей особыми полномочиями – правом предоставления полномочий другим пользователям. Это означает, что для работы с данным объектом они могут наделять полномочиями других пользователей.
Работу с представлениями можно продемонстрировать на примерах с таблицей emp_data:
CREATE TABLE emp_data
(
Рекомендуем скачать другие рефераты по теме: методы дипломной работы, шпаргалки.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата