Академический Документы
Профессиональный Документы
Культура Документы
php
_n=21.html
Выпуск 19
Здравствуйте. Вот уже и сентябрь заявил о себе в полный голос. В Ростове-на-Дону
началась престранная погода: утром и вечером прохлада заставляет одеваться потеплее, а
днем солнышко греет так, что хочется поесть мороженого или испить прохладного кваса.
В школах начались первые осенние субботники, а студенты-первокурсники заводят новые
знакомства, которые, возможно, станут решающими в их дальнейшей жизни.
Думаю, для постоянных читателей рассылки эти вопросы покажутся очень простыми. Но
если вы сомневаетесь, заходите на сайт oranet.ru и читайте архив статей.
Для создания пользователя, необходимо указать, как минимум, его имя. Имя должно быть
уникальным. В дополнение к имени можно сразу указать пароль, профиль (если он
отличен от DEFAULT), табличное пространство и временное табличное пространство.
Кроме этого, пользователь может быть включен (unlocked) и заблокирован (locked).
Заблокированные пользователи не могут производить никаких действий с БД.
Для того чтобы изменить параметры пользовательской учетной записи можно опять же
воспользоваться Enterprise Manager-ом, или выполнить соответствующую SQL-команду.
Роль – это набор (или, иными словами, группа) системных и объектных привилегий. А
привилегия – это право на исполнение определенной SQL -команды или на доступ к
определенному объекту. Например, системная привилегия SELECT ANY TABLE
разрешает выполнить оператор SELECT для любой таблицы. Если мы эту привилегию
присвоим роли SOME _ ROLE , а затем эту роль предоставим некоторому пользователю,
то этот пользователь также получит привилегию SELECT ANY TABLE . Роли можно
присваивать и другим ролям.
Тут Вы можете спросить, зачем же нужны роли, если мы и так можем присвоить все
необходимые привилегии выбранному пользователю? Так вот, роли значительно
упрощают управление привилегиями. Представьте, что у Вас 100 пользователей, и
каждому из них надо присвоить массу привилегий. Вы же замучаетесь их присваивать и
рано или поздно допустите ошибку. Используя роли можно добиться того же результата
гораздо эффективнее. Кроме того, Вы можете включить и выключить любую роль.
Также есть механизм присваивания пароля для роли, при этом ролью могут
воспользоваться лишь те пользователи, которые знают пароль. Все пользователи, которым
применена роль по умолчанию, могут пользоваться всеми привилегиями такой роли, без
необходимости вводить пароль. Но, обратите внимание, что даже если у пользователя есть
роль по-умолчанию ( DEFAULT ROLE ), то он может ей пользоваться только в случае,
когда она ему непосредственно присвоена до этого. Иными словами, прежде чем указать
роль по-умолчанию, эта роль должна быть назначена пользователю.
Сразу после создания пользовательского аккаунта, для него назначаются все роли по-
умолчанию (DEFAULT ROLE ALL). Если какие либо роли исключаются из DEFAULT, то
пользователь не сможет воспользоваться соответствующими правами, пока не включит
роль командой SET ROLE ИМЯ_РОЛИ.
Управление ролями
Конечно же, роль можно создать с помощью Enterprise Manager (думаю, Вы без труда
справитесь с такой задачей самостоятельно), а сейчас рассмотрим команду создания роли
с помощью SQL:
Как я уже говорил, роль можно назначить любому пользователю или другой роли, точно
так же как привилегию. Для этого используется команда GRANT (разрешить). Эта
команда должна соответствовать следующему синтаксису:
GRANT имя_роли или имя_привилегии [, имя_роли или имя_привилегии ]
TO пользователь или имя_роли или PUBLIC [, пользователь или имя_роли ]
[ WITH ADMIN OPTION ]
[ WITH GRANT OPTION ]
Этой командой можно назначить любое количество ролей или привилегий любому
количеству пользователей или ролей. Если вы назначаете роли или привилегии для
PUBLIC, то этим они назначаются для всех пользователей сразу.
GRANT ALL ON salary TO jfee ; - этой командой пользователю jfee предоставляются все
объектные привилегии на представление salary.
Подводя итоги
Сегодня мы узнали как создавать и изменять пользователей, как назначать им роли и
привилегии. Рассмотрели примеры создания, изменения, удаления и назначения ролей.
Это наиболее частые задачи администрирования пользователей СУБД Oracle .
Роли – это очень важная часть обеспечения безопасности работы сервера. Я советую
подробно документировать создаваемые роли для того, чтобы четко представлять какие из
них должны быть назначены новым пользователям системы.
Что дальше?
В следующем выпуске мы рассмотрим управление профилями пользователей, а также
начнем тему управления процессами.
Вопросы – Ответы
Вопрос: Какая разница между привилегией и ролью?
Ответ: Привилегия – это право выполнить некое действие или команду. Роль – это набор
привилегий и других ролей.