Типичная система привилегий

Другие типы привилегий

Преимущественное право создавать таблицы не регламентируется ANSI. Но эту область привилегий нельзя игнорировать (все стандартные ANSI-привилегии вытекают из нее), ведь именно создатели таблиц предоставляют привилегии на объекты. Кроме того, разрешая всем пользователям создавать базовые таблицы в системе любого размера, увеличивается избыточность данных и снижается эффективность системы их обработки. Следующие вопросы связаны с этим же. Кто имеет право изменять, удалять или накладывать ограничения на таблицу? Отличается ли право создавать базовые таблицы от права создавать представ­ления? Должны ли существовать суперпользователи (superusers) — пользовате­ли, основной обязанностью которых является управление базой данных и которые имеют подавляющее множество или все привилегии и не имеют права их индивидуальной передачи?

Поскольку ANSI не касается этих вопросов, в конкретных реализациях SQL используется огромное множество подходов, и невозможно дать вполне конкрет­ные ответы на все эти вопросы. Можно только изложить наиболее общий подход к решению этих проблем.

Привилегии, которые не определяются в терминах отдельных объектов, называются системными привилегиями (system privileges) или авторским правом на базу данных (database authorities). В подавляющем большинстве случаев систем­ные привилегии включают в себя право создавать объекты данных, различать базовые таблицы (обычно создаваемые силами нескольких пользователей) и представления (обычно создаваемые многими или всеми пользователями). Сис­темная привилегия на создание представления поддерживается, в отличие от привилегии замены, объектными привилегиями, представленными в стандарте ANSI. Кроме того, в системе любого размера существует суперпользователь. Термин, чаще всего используемый для такого суперпользователя и его привиле­гий, — администратор базы данных (DBA — Database Administrator).

Обычно принято различать три типа базовых систем привилегий, которые называются CONNECT, RESOURCE и DBA. CONNECT предусматривает право входить в систему и создавать представления и синонимы (см. главу 23), если речь идет об объектных привилегиях. RESOURCE предоставляет право создавать базовые таблицы. DBA — это привилегия суперпользователя, дающая право пользователю распоряжаться базой данных по своему усмотрению (как своей собственной). Эту привилегию имеет пользователь (один или несколько) с функцией администрирования базы данных. В некоторых системах есть также специальный пользователь (иногда называемый SYSADM или просто SYS), об­ладающий высшим авторским правом; это специальное обозначение пользова­телей, в отличие от имеющих привилегию DBA. SYSADM рассматривается как идентификатор пользователя. Различия в названиях и приписанных им действиях существенны для различных систем. Мы будем ссылаться на самого высоко привилегированного пользователя (или пользователей), который занимается проектированием и управлением базой данных как на пользователя DBA, отра­жая тот факт, что за этим названием скрывается скорее функция чем привилегия.

Команда GRANT в своей модифицированной форме применима и к систем­ным, и к объектным привилегиям. Начальные привилегии назначаются пользо­вателем DBA. Например, DBA может передать привилегию создания таблицы пользователю Rodriguez таким образом:

GRANT RESOURCE TO Rodriguez;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: