Безопасность требует и большего. Например, если пользователю уже не требуются некоторые из предоставленных ему привилегий, эти привилегии должны быть для него отменены Если же оказывается, что пользователю уже не требуется доступ к базе данных, его учетная запись должна быть из базы данных удалена.
В общем, управление пользователями представляет собой процесс создания и удаления учетных записей пользователей и наблюдение за действиями пользователей в рамках базы данных Зашита данных в базе данных означает следующий шаг в защите путем распределения привилегий для работы в рамках различных уровней доступа, отмены привилегий и принятия мер по защите различных данных, в частности, жизненно важных файлов базы данных.
Здесь мы обсуждаем привилегии доступа к базе данных потому, что эта книга посвящена SQL, а не базам данных Однако вам следует знать, что имеются и другие аспекты безопасности баз данных, в частности, защита служебных файлов базы данных, которые важны не менее чем распределение привилегий доступа Проблема обеспечения надежной защиты данных в зависимости от используемой системы управления реляционной базой данных может оказаться весьма непростой задачей
Что такое привилегии?
Привилегии - это уровни полномочий, предоставленных пользователю при доступе к самой базе данных и ее объектам, при манипуляции данными и при выполнении в рамках базы данных различных административных функций. Привилегии предоставляются посредством команды GRANT и отменяются посредством команды REVOKE.
То, что пользователь может подключиться к базе данных, совсем не означает того, что пользователь сможет извлечь данные из этой базы данных. Доступ данных в рамках базы данных как раз и разрешается путем назначения привилегий доступа. Различают следующие два типа привилегий доступа.
1. Привилегии доступа к системе.
2. Привилегии доступа к данным.
Привилегии доступа к системе
Привилегии доступа к системе - это привилегии, дающие возможность пользователю решать в рамках базы данных административные задачи типа создания и удаления баз данных, учетных записей пользователей, изменения и удаления различных объектов базы данных, изменения состояния объектов, изменения состояния базы данных и других подобных операций, несущих в себе при недостаточной внимательности потенциальную опасность для базы данных в целом.
Предлагаемые разными производителями баз данных привилегии доступа к системе сильно отличаются, поэтому по поводу имеющихся в рамках вашей системы привилегий доступа и правильного их использования необходимо обратиться к соответствующим разделам документации.
Вот список некоторых из привилегий доступа к системе, которые предлагаются в рамках Sybase.
CREATE DATABASE
CREATE DEFAULT
CREATE PROCEDURE
CREATE RULE
DUMP DATABASE
DUMP TRANSACTION
EXECUTE
Вот список некоторых из привилегий доступа к системе, которые предлагаются в рамках Oracle.
CREATE TABLE
CREATE ANY TABLE
ALTER ANY TABLE
DROP TABLE
CREATE USER
DROP USER
ALTER USER
ALTER DATABASE
ALTER SYSTEM
BACKUP ANY TABLE
SELECT ANY TABLE
Привилегии доступа к объектам
Привилегии доступа к объектам - это уровни полномочий, предоставленных пользователю при работе с объектами базы данных, и это значит, что для выполнения определенных операций с объектами базы данных пользователю требуется предоставить соответствующие привилегии. Например, чтобы извлечь данные из таблицы другого пользователя, следует сначала получить право доступа к его данным. Привилегии доступа к объектам предоставляются пользователям базы данных владельцами объектов. Напоминаем, что владельца объекта называют также владельцем схемы.
Стандарт ANSI определяет следующие привилегии доступа к объектам.
USAGE. Разрешает использование заданной области.
SELECT. Разрешает доступ к заданной таблице.
INSERT (имя_столбца). Позволяет разместить данные в указанном столбце заданной таблицы.
INSERT. Позволяет поместить данные во все столбцы заданной таблицы.
UPDATE {имя_столбца). Позволяет изменить данные в указанном столбце заданной таблицы.
UPDATE. Позволяет изменить данные во всех столбцах заданной таблицы.
REFERENCES (имя_столбца). Позволяет сослаться в условиях целостности на указанный столбецзаданной таблицы; требуется для всех условий целостности.
REFERENCES, позволяет сослаться в условиях целостности на любой столбец заданной таблицы.
Владелец объекта автоматически наделяется всеми привилегиями относительно этого объекта. Такие привилегии могут быть разрешены также имеющейся в некоторых реализациях языка очень удобной командой GRANT OPTION, которая будет обсуждаться ниже.
Читать дальше