Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных Язык SQL.doc
Скачиваний:
6
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆

5. Управление доступом к данным

Цель изучения данной главы – получить основные знания и умения администрирования базы данных.

После изучения главы вы будете:

  • знать основные принципы организации системы безопасности СУБД

  • уметь создавать учетные записи пользователей, присваивать им определенные привилегии и роли

  • понимать свойства транзакций (АСИД), уметь применять на практике команды SQL для поддержки транзакций

  • знать основные принципы управления производительностью СУБД

  • уметь создавать необходимые индексы в целях повышения производительности.

5.1 Система безопасности субд

Система безопасности (Security) предназначена для сохранности данных от злонамеренной порчи либо от несанкционированного доступа. Обычно система безопасности включает две составляющие:

  1. Разграничение доступа пользователей.

  2. Аудит действий пользователя.

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

В дальнейшем изложении мы будем опираться на систему безопасности Oracle, понимая, что при переходе на любую новую СУБД придется потратить определенное время на освоение ее системы безопасности.

5.1.1 Разграничение доступа пользователей

Создание учетных записей пользователей

Все СУБД предоставляют доступ к информации базы данных только зарегистрированным пользователям, имеющим учетные записи этой базы. При установке Oracle автоматически создается несколько учетных записей – это пользователи с именами SYS и SYSTEM, обладающие всеми правами АБД (самыми обширными правами обладает SYS, который имеет право останавливать и запускать сервер), а также несколько пользователей, созданных в демонстрационных целях.

Для создания учетной записи каждого нового пользователятребуется создать стандартный объект user с обязательным указания пароля данного пользователя (пароли в словаре данных Oracle хранятся в зашифрованном виде, поэтому если пользователь забыл пароль, его нельзя посмотреть, но можно сменить). В Oracle команда CREATE USER … содержит еще ряд дополнительных параметров:

Create user имя_пользователя

Identified by пароль

[default tablespace имя_табличного_пространства]

[temporary tablespace имя_временного_табличного_пространства]

[quota unlimited / размер предоставляемого дискового пространства]

[profile имя_профиля]

Например:

CREATE USER user1

Identified by cneltyn

default tablespace users

temporary tablespace temp

В данной команде используются стандартные имена табличных пространств, которые создаются при установке сервера Oracle. Табличное пространство – это файл (или несколько файлов, логически воспринимаемые Oracle как единое пространство для хранения таблиц или индексов). В приведенном примере размер части табличного пространства, предоставляемого пользователю, не ограничен (точнее, ограничен только размерами пространства). Специальный профиль для пользователя не создается.

Несколько слов о профилях пользователей (подробные сведения выходят за рамки курса). Создание индивидуальных профилей для пользователей базы данных позволяет:

  1. Вести индивидуальную политику паролей (время жизни пароля)

  2. Ограничить ресурсы (количество одновременно открытых сессий, процессорное время, отводимое данному пользователю или время для некоторого конкретного запроса, время ожидания ответа сервера и ряд других важных ресурсов).

Профиль создается при помощи команды

Create profile имя профиля [параметры_профиля]

и в любой момент может быть изменен командой

ALTER PROFILE …..

Изменение учетной записи

Команда Alter user имя ......позволяет изменять различные параметры учетной записи (кроме имени пользователя).

Например:

Alter user user1

Identified by новый_пароль

Так можно сменить пароль пользователя.

Alter user user1 quota 100M on USERS

Теперь для пользователя user1 размер его части табличного пространства USERS ограничен 100 Мегабайтами.

Удаление учетной записи

С помощью команды drop user... можно совсем удалить пользователя из базы данных.

Например, команда:

drop user user1

удалит пользователя user1, но только в том случае, если он еще не создал ни одного объекта.

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

drop user user1 cascade

Пользователи и схемы

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

CREATE SCHEMA имя_пользователя

Напомним, что понятие схемы поддерживается стандартом. Это самостоятельная часть базы данных, все имена объектов, создаваемых пользователем, должны быть уникальны только в пределах схемы, поскольку имя объекта (таблицы, представления и т.д.) в пределах всей базы данных складывается из двух составляющих:

имя_схемы.имя_объекта

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