Разработка приложений баз данных для СУБД Sybase SQL Anywhere





Таблица 7. Привилегии, применимые к таблицам данных - часть 6


/* Регистрация нового пользователя LIBRARIANS без определения пароля /* GRANT CONNECT TO LIBRARIANS; /* Установка класса полномочий Remote DBA, т. к. в шаге 2 сразу перешли к следующему шагу */ GRANT Remote DBA to LIBRARIANS; /* Предоставление пользователю возможности иметь подчиненных пользователей*/ GRANT GROUP TO LIBRARIANS; COMMENT ON USER LIBRARIANS IS 'Группа библиотекарей'

Для того, чтобы удостовериться в утилите ISQL в том, что группа LIBRARIANS была создана и она пока не объединяет ни одного пользователя необходимо считать информацию из системных представлений SYS.SYSUSERLIST и SYS.SYSGROUPS.

Как видно из вышерассмотренных SQL-операторов, группы пользователей фиксируются в базе данных таким же образом как и индивидуальные пользователи. Однако отсутствие пароля не дает возможность осуществить соединение с использованием в качестве имени пользователя наименования группы.

Только что созданная группа LIBRARIANS не объединяет пока ни одного пользователя. Включим в ее состав зарегистрированных библиотекарей.

В SQL Central для выполнения этой задачи следует выделить пиктограмму пользователя, включаемого в группу, и удерживая левую кнопку мыши перетащить ее к пиктограмме группы. Объединим таким образом всех библиотекарей в группу LIBRARIANS. После этого щелкнем мышью по пиктограмме LIBRARIANS. Тогда в правой панели утилиты будет показан состав группы пользователей LIBRARIANS (рис. 40). При этом в левой для дальнейших рассуждений раскрыта вся иерархия групп пользователей.

Рис.40. Состав группы пользователей LIBRARIANS

В утилите ISQL такого же эффекта позволяет достичь выполнение ниже приведенных SQL-операторов:

/*Включение пользователей - билиотекарей в группу LIBRARIANS */ GRANT MEMBERSHIP IN GROUP LIBRARIANS TO Ivanova; GRANT MEMBERSHIP IN GROUP LIBRARIANS TO Petrova; GRANT MEMBERSHIP IN GROUP LIBRARIANS TO Popova; GRANT MEMBERSHIP IN GROUP LIBRARIANS TO Sidorova

Проверить результаты включения библиотекарей в группу LIBRARIANS в среде ISQL можно, обратившись к системному представлению SYS.SYSGROUPS.

Теперь привилегии, устанавливаемые для группы LIBRARIANS, автоматически распространяются на всех пользователей - библиотекарей, входящих в группу.

Любой отдельный пользователь, также как и группа пользователей, может входить в состав нескольких групп. В свою очередь каждая группа может включать в качестве своих членов несколько пользователей и групп. Члены группы наследуют привилегии, установленные во всех группах, в которые они входят.

При создании базы данных в ней автоматически создаются три пользовательские группы: SYS, dbo и PUBLIC. О них коротко упоминалось при рассмотрении утилиты ISQL () и при обсуждении создания базы данных (). Группа SYS выступает как владелец всех системных таблиц и представлений. (Следует напомнить, что владельцами объектов являются пользователи их создавшие.) Группа dbo введена в состав баз данных СУБД SQL Anewhere для обеспечения совместимости с базами данных СУБД SYBASE SQL Server. Эта группа является владельцем представлений, созданных на основе системных таблиц и представлений. Представления группы dbo имеют такие же названия, содержат те же поля и хранят такую же информацию, что и одноименные системные таблицы и представления СУБД SYBASE SQL Server. В объектах, владельцами которых являются группы SYS и dbo, хранится вся служебная информация о базе данных.

В пользовательскую группу PUBLIC входят все регистрируемые в базе данных отдельные пользователи и группы пользователи. Пользователи включаемые затем в другие группы тем не менее остаются членами группы PUBLIC. В этой группе установлена привилегия SELECT () для некоторых системных таблиц и всех системных представлений. Поэтому любой пользователь имеет возможность считать некоторую информацию о базе данных.

В базах данных СУБД SQL Anywhere информация о вхождении отдельных пользователей и групп пользователей в состав других групп хранится в системном представлении SYS.SYSGROUP. На основании информации из этого представления составлена схема взаимосвязей групп пользователей для базы данных Dubl_Biblia (рис. 41).

Рис.41. Схема взаимосвязей групп пользователей базы данных Dubl_Biblia

Из рис. 41 видно, что пользователь DBA имет привилегии, определенные в группах SYS, dbo и PUBLIC. На пользователей Ivanova, Petrova, Popova и Sidorova распространяются привилегии, установленные в группах SYS, dbo , PUBLIC и LIBRARIANS.




Содержание  Назад  Вперед