Реферат: СУБД INFORMIX

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

В общих чертах синтаксическая запись правил безопасности доступа к данным выглядит следующим образом:

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 никогда не распространяются на представления.

Привилегии при использовании представления

К-во Просмотров: 1034
Бесплатно скачать Реферат: СУБД INFORMIX