Средства автоматизации пользователей могут быть встроены непосредственно в программное обеспечение и управлять не только предоставленными пользователям правами доступа к системе или объектам, но и набором операций, которые пользователи могут выполнять с каждым доступным ему объектом. По этой причине механизм авторизации часто иначе называют подсистемой управления доступом. Термин «владелец» в определении может представлять пользователячеловека или программу. Термин «объект» может представлять таблицу данных, представление, приложение, процедуру или любой другой объект, который может быть создан в рамках системы. В некоторых системах все предоставляемые субъекту права должны быть явно указаны для каждого из объектов, к которым этот субъект должен обращаться. Процесс авторизации включает аутентификацию субъектов, требующих получения доступа к объектам.
Аутентификация – это механизм определения того, является ли пользователь тем, за кого себя выдает.
За представление пользователям доступа к компьютерной системе обычно отвечает системный администратор. Каждому пользователю присваивается уникальный идентификатор, который используется операционной системой для определения того, кто есть, кто. С каждым идентификатором связывается определенный пароль, выбираемый пользователем и известный операционной системе. При регистрации пользователь должен предоставлять системе свой пароль для выполнения проверки (аутентификации) того, является ли он тем, за кого себя выдает.
Подобная процедура позволяет организовать контролируемый доступ к компьютерной системе, но не обязательно предоставляет право доступа к СУБД или иной прикладной программе. Для получения пользователем права доступа к СУБД может использоваться отдельная подобная
121
процедура. Ответственность за предоставление прав доступа к СУБД обычно несет администратор базы данных (АБД), в обязанности которого входит создание индивидуальных идентификаторов пользователей, но на этот раз уже в среде самой СУБД. Каждый из идентификаторов пользователей СУБД так же связывается с паролем, который должен быть известен только данному пользователю. Этот пароль будет использоваться подпрограммами СУБД для идентификации данного пользователя.
Некоторые СУБД поддерживают списки разрешенных идентификаторов пользователей и связанных с ними паролей, отличающиеся от аналогичного списка, поддерживаемого операционной системой. Другие типы СУБД поддерживают списки, элементы которых приведены в соответствие существующим спискам пользователей операционной системы и выполняют регистрацию исходя из текущего идентификатора пользователя, указанного им при регистрации в системе. Это предотвращает попытки пользователей зарегистрироваться в среде СУБД под идентификатором, отличным от того, который они использовали при регистрации в системе.
Использование паролей является наиболее распространенным методом аутентификации пользователей. Однако этот подход не дает абсолютной гарантии, что данный пользователь является именно тем, за кого себя выдает. Ниже в этой главе мы обсудим методы, позволяющие сократить подобный риск.
Привилегии
Как только пользователь получит право доступа к СУБД, ему могут автоматически предоставляться различные другие привилегии, связанные с его идентификатором. В частности, эти привилегии могут включать разрешение на доступ к определенным базам данных, таблицам, представлениям и индексам или же право запуска различных утилит СУБД. Некоторые типы СУБД функционируют как закрытые системы, поэтому пользователям помимо разрешения на доступ к самой
122
СУБД потребуется иметь отдельные разрешения и на доступ к конкретным ее объектам. Эти разрешения выдаются либо АБД, либо владельцами определенных объектов системы. В противоположность этому, открытые системы по умолчанию предоставляют авторизированным пользователям полный доступ ко всем объектам базы данных. В этом случае привилегии устанавливаются посредством явной отмены тех или иных прав конкретных пользователей. Типы привилегий, которые могут быть предоставлены авторизированным субъектам, включают, например, право доступа к указанным базам данных, право выборки данных, право создания таблиц и других объектов.
Право владения и привилегии
Некоторыми объектами в среде СУБД владеет сама СУБД. Обычно это владение организуется посредством использования специального идентификатора особого суперпользователя, например, с именем Database Administrator. Как правило, владение некоторым объектом предоставляет его владельцу весь возможный набор привилегий в отношении этого объекта. Это правило применяется ко всем авторизированным пользователям, получающим права владения определенными объектами. Любой вновь созданный объект автоматически передается во владения его создателю, который и получает весь возможный набор привилегий для данного объекта. Тем не менее, хотя пользователь может быть владельцем некоторого представления, единственной привилегией, которая будет представлена ему в отношении этого объекта, может оказаться право выборки данных из этого представления. Причиной подобных ограничений состоит в том, что данный пользователь имеет столь ограниченный набор прав в отношении базовых таблиц созданного им представления. Принадлежащие владельцу привилегии могут быть переданы им другим авторизированным пользователям. Например, владелец нескольких таблиц базы данных может предоставить другим пользователям право выборки
123
информации из этих таблиц, но не позволить им вносить в эти таблицы какие-либо изменения. В некоторых типах СУБД, всякий раз, когда пользователю предоставляется определенная привилегия, дополнительно может указываться, передается ли ему право предоставлять эту привилегию другим пользователям (уже от имени этого пользователя). Естественно, что в этом случае СУБД должна контролировать всю цепочку предоставления привилегий пользователям, с указанием того, кто именно ее предоставил, что позволит поддерживать корректность всего набора установленных в системе привилегий. В частности, эта информация будет необходима в случае отмены предоставленных ранее привилегий для организации каскадного распространения вносимых изменений среди цепочки пользователей.
Если СУБД поддерживает несколько различных типов идентификаторов авторизации, с каждым из существующих типов могут быть связаны различные приоритеты. В частности, если СУБД поддерживает использование идентификаторов как отдельных пользователей, так и их групп, то, как правило, идентификатор пользователя будет иметь более высокий приоритет, чем идентификатор группы. Пример определения идентификаторов пользователей и групп в подобной СУБД приведен в табл. 5.1.
Таблица 5.1 Идентификаторы пользователей и групп
Идентификатор |
Тип |
Группа |
Идентификатор |
|
пользователя |
члена группы |
|||
|
|
|||
SG37 |
Пользователь |
Sales |
|
|
|
|
|
|
|
SG14 |
Пользователь |
Sales |
|
|
|
|
|
|
|
SG5 |
Пользователь |
|
|
|
|
|
|
|
|
Sales |
Группа |
|
SG37, SG14 |
|
|
|
|
|
124
В столбцах Идентификатор пользователя и Тип приведены определенные в системе идентификаторы и указывается их тип – отдельный пользователь и группа пользователей. Столбцы с заголовками Группа и Идентификатор члена группы содержат сведения о группе,
которой принадлежит пользователь, и его идентификаторе в этой группе. С каждым конкретным идентификатором может быть связан определенный набор привилегий, определяющий тип доступа к отдельным объектам базы данных (например, для чтения (Read), обновления (Update), удаления (Delete) или все типы сразу (All)). С каждым типом привилегии связывается некоторое двоичное значение:
READ |
UPDATE |
INSERT |
DELETE |
ALL |
0001 |
0010 |
0100 |
1000 |
1111 |
Отдельные двоичные значения суммируются, и полученная сумма однозначно характеризует, какие именно привилегии (если они есть) имеет каждый конкретный пользователь или группа в отношении определенного объекта базы данных. В табл. 5.2 приведен пример матрицы управления доступом, определяющей набор привилегий, которые пользователи SG37, SG5 и группа Sales имеют в отношении указанных столбцов таблицы Property_for_Rent.
|
|
|
|
|
|
|
Таблица 5.2 |
|
|
|
«Матрица управления доступом» |
|
|
||||
Идентиф икатор пользова теля |
Столбец Pno |
Столбец Type |
Столбец Price |
Столбец Ono |
Столбец Sno |
Столбец Bno |
|
Лимит Выбирае мых строк |
|
|
|
|
|
|
|
|
|
SG37 |
0101 |
0101 |
0111 |
0101 |
0111 |
0000 |
|
100 |
|
|
|
|
|
|
|
|
|
SG5 |
1111 |
1111 |
1111 |
1111 |
1111 |
1111 |
|
нет |
|
|
|
|
|
|
|
|
|
Sales |
0001 |
0001 |
0001 |
0000 |
0000 |
0000 |
|
15 |
|
|
|
|
|
|
|
|
|
125