Сделай Сам Свою Работу на 5

Модификация пользователей





Существующие учетные записи пользователей могут изменяться только суперполь­зователями PostgreSQL. При этом допускается изменение всех параметров, ука­зываемых при создании пользователя (пароль, срок действия, глобальные права), кроме системного идентификатора. Модификация существующих пользователей производится командой SQL ALTER USER. Синтаксис команды ALTER USER:

ALTER USER пользователь

[WITH PASSWORD 'пароль']

[CREATEDB | NDCREATEDB]

[CREATEUSER | NOCREATEUSER]

[VALID UNTIL 'срок']

Поскольку мы указали не безопасный пароль администратор, то изменим его

ALTER USER admin

WITH PASSWORD '09admn04gamma'

Удаление пользователей

Аутентифицированный суперпользователь может в любой момент удалить из си­стемы любого пользователя PostgreSQL. Существует единственное ограничение - нельзя удалить пользователя, который является владельцем базы данных. Прежде чем удалять пользователя, необходимо удалить из системы принадлежащие ему базы.

Чтобы удалить пользователя PostgreSQL, суперпользователь может ввести команду DROP USER. Синтаксис команды DROP USER:

DROP USER пользователь

Параметр пользовательопределяет имя пользователя, удаляемого из системы.

Управление группами



Группы упрощают процедуру назначения прав пользователям. Обычные приви­легии должны назначаться каждому пользователю по отдельности. Это может быть весьма утомительно, если нескольким пользователям требуется одинаковый уро­вень доступа к нескольким объектам базы данных.

Для решения этой проблемы в PostgreSQL создаются группы. При создании группы достаточно указать ее имя, причем группа может быть пустой (то есть не содержащей ни одного пользователя). Пользователи, обладающие общими приви­легиями доступа, включаются в группу и в дальнейшем считаются ее членами. Права доступа к объектам базы данных предоставляются группе в целом, а не ее отдельным членам. В системах с большим количеством пользователей и баз дан­ных группы значительно упрощают задачу управления правами.

ПРИМЕЧАНИЕ

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

Создание и удаление групп

Любой суперпользователь может создать новую группу PostgreSQL командой SQL CREATE GROUP. Синтаксис команды CREATE GROUP:



CREATE GROUP группа [WITH

[SYSID ицентификатор_группы] [USER пользователь [. ...]]]

Параметр группаопределяет имя создаваемой группы. Имена групп должны начинаться с алфавитного символа, а их длина не может превышать 31 символа. В секции WITH передаются дополнительные атрибуты. Ключевое слово SYSID задает системный идентификатор новой группы. Ключевое слово USER позволяет вклю­чить одного или нескольких пользователей в группу на стадии ее создания. Имена членов группы разделяются запятыми.

Следует помнить, что таблицы пользователей и групп в PostgreSQL существу­ют отдельно друг от друга. Несмотря на это, в PostgreSQL не допускается совпаде­ние системных идентификаторов пользователей и групп.

Список всех существующих групп хранится в системной таблице pg_group.

Создадим новую группу пользователь, которые не смогут создавать/удалять БД и не смогут создавать/удалять новых пользователей, к которой будет принадлежать user1:

CREATE GROUP users WITH USER user1

Удаление группы

Любой суперпользователь может удалять существующие группы командой SQL DROP GROUP. Будьте внимательны при выполнении этой команды, поскольку она необратима и вам не будет предложено подтвердить удаление группы (даже если в ней остаются пользователи).

Синтаксис команды DROP GROUP:

DROP GROUP группа

Параметр группаопределяет имя удаляемой группы.

Назначение пользователей в группы

Включение пользователей в группы и удаление их из групп в PostgreSQL выпол­няется командой SQL ALTER GROUP. Синтаксис команды ALTER GROUP:

ALTER GROUP группе {ADD | DROP} USER пользователь [. .]

Параметр группаопределяет имя группы, а параметр пользовательимя вклю­чаемого или удаляемого пользователя (в зависимости от присутствия ключевого слова ADD или DROP).



Предоставление привилегий

B PostgreSQL учет привилегий ведется при помощи списков управления доступом (access control lists, ACL). Информация, хранящаяся в этих списках, указывает, каким пользователям разрешена выборка, обновление и другие способы модификации объектов в базе данных. Для всех объектов баз данных PostgreSQL (таблиц, представлений, последовательностей, БД, функциям, хранимым процедурам, схемам) существует набор привилегий и ограничений доступа. Суперпользователи и владельцы объектов изменяют ACL при помощи пары команд SQL: GRANT и REVOKE.

Когда пользователь создает базу данных, он косвен­но становится владельцем этой базы. Аналогичный принцип распространяется и на другие объекты: они также принадлежат пользователю, который ввел соответ­ствующую команду SQL CREATE.

Если не считать суперпользователей PostgreSQL, которым разрешены любые операции с любыми объектами данных, только владельцы объектов могут предоставлять и отзывать привилегии для принадлежащих им объектов. Хотя к базе дан­ных может подключиться любой пользователь, для получения доступа к объектам базы он должен обладать специально предоставленными привилегиями.

Предоставление привилегий командой GRANT

Для объектов БД существуют четыре общие привилегии, которые могут предоставляться пользователям или группам и отбираться у них. Отзыв прав требуется только для отмены их предшествующего предоставления. Изначально пользователи и группы не име­ют никаких прав.

Для предоставления привилегий пользователям и группам используется команда SQL GRANT. Синтаксис команды GRANT для объектов БД:

GRANT {{SELECT|INSERT|UPDATE|DELETE|REFERENCES|TRIGGER}|ALL[PRIVILEGES]}

ON [TABLE] tablename [, ...]

TO {[GROUP] rolename|PUBLIC} [, ...] [WITH GRANT OPTION]

GRANT {{USAGE|SELECT|UPDATE} [,...]| ALL [PRIVILEGES]}

ON SEQUENCE sequencename [, ...]

TO {[GROUP] rolename|PUBLIC} [, ...] [WITH GRANT OPTION]

GRANT {{CREATE|CONNECT|TEMPORARY|TEMP} [,...]|ALL[PRIVILEGES]}

ON DATABASE dbname [, ...]

TO {[GROUP] rolename|PUBLIC} [, ...] [WITH GRANT OPTION]

GRANT {EXECUTE|ALL [PRIVILEGES]}

ON FUNCTION funcname ([[argmode] [argname] argtype [, ...]]) [, ...]

TO {[GROUP] rolename|PUBLIC} [, ...] [WITH GRANT OPTION]

GRANT {USAGE|ALL [PRIVILEGES]}

ON LANGUAGE langname [, ...]

TO {[GROUP] rolename|PUBLIC} [, ...] [WITH GRANT OPTION]

GRANT {{CREATE|USAGE} [,...]|ALL[PRIVILEGES]}

ON SCHEMA schemaname [, ...]

TO {[GROUP] rolename|PUBLIC} [, ...] [WITH GRANT OPTION]

GRANT {CREATE|ALL [PRIVILEGES]}

ON TABLESPACE tablespacename [, ...]

TO {[GROUP] rolename|PUBLIC} [, ...] [WITH GRANT OPTION]

 

ЗАКЛЮЧЕНИЕ

Современные информационные системы создаются на базе мощных SQL-серверов, способных одновременно обслуживать несколько сотен клиентских приложений. SQL-сервер устанавливается на выделенном компьютере и соединяется с клиентскими компьютерами через локальную сеть. Хотя работа приложения с серверными СУБД по существу не отличается от работы с локальными и файл-сервер­ными СУБД, но предъявляет специфические требо­вания по подключению к базе данных. Поэтому в данном пособии эти вопросы рассмотрены достаточно подробно.

Кроме этого для создания баз данных серверные СУБД не содержат визуальных средств разработки, какие имеют место для настольных СУБД, и базы данных для серверных СУБД, как правило, создаются посредством SQL-запро­сов. Поэтому освоение средств для работы с SQL-запросами, таких как Win­dows Interactive SQL, поможет будущим специалистам при разработке сложных информационных систем, реализованных по клиент-серверной технологии.

В пособии рассмотрены также приемы работы с наборами данных, включающими в себя:

- поиск данных, фильтрация данных,

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

- кэширование данных,

- использование компонента TDBNavigator,

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

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

 

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

Бобровский С. Delphi 5: Учебный курс / С. Бобровский. − СПб.: Издательство «Питер», 2000. − 640 с.

Базы данных: модели, разработка, реализация / Т. С. Карпова. − СПб.: Питер, 2001. − 304 с.

Кандзюба С. П., Delphi 5. Базы данных и приложения. Лекции и упражнения / С. П. Кандзюба, В.Н. Громов. − К.: Издательство «ДиаСофт», 2001. − 592 с.

Кучеренко В. Создание таблиц и OLE-приложений в среде программирования Delphi / В. Кучеренко. − М.: Познавательная книга плюс, 2000. − 192 с.

Хансен Г., Базы данных: разработка и управление: − Пер. с англ. / Г. Хансен, Дж. Хансен. − М.: ЗАО «Издательство БИНОМ», 1999. − 704 с.

Грачев А. Ю. Введение в СУБД Informix: Учебно-справочное пособие / А. Ю. Грачев. − М.: Диалог – МИФИ, 2000. − 272 с.

 

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.