Выбрать главу

В следующем примере показано подключение под пользователем system и

создание пользователя по имени jason с паролем price:

□ CONNECT system/manager

CREATE USER jason INDENIFIED BY price;

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

как привилегированный пользователь. В предлагаемом примере используется пользователь

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

В следующем примере создается пользователь по имени henry, и для него

определяются табличное пространство по умолчанию и временное табличное

пространство:

□ CREATE USER henry IDENTIDFIED BY hooray

DEFAULT TABLESPACE users

TEMPORARY TABLESPACE temp;

Примечание Если в вашей базе данных нет табличных пространств с именами users и temp,

вы можете пропустить эти примеры. Пользователь henry больше не будет использован в этой

книге. Он был включен просто для того, чтобы показать, как задаются табличные пространства

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

к базе данных как пользователь system и выполните запрос SELECTtablespace_

name FROM dba_tablespaces.

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

должны быть предоставлены необходимые для этого разрешения. Например,

чтобы подключиться к базе данных, пользователю должны быть даны

права на создание сеанса, т. е. системная привилегия CREATE SESSION. Разрешения

предоставляются привилегированным пользователем (например,

system) с использованием оператора GRANT.

В следующем примере разрешение CREATE SESSION предоставлено пользователю

jason:

□ GRANT CREATE SESSION TO jason;

Теперь пользователь jason сможет подключиться к базе данных.

В следующем примере создаются другие пользователи, которые будут

использоваться в этой главе, и им предоставлено полномочие CREATE

SESSION:

□ CREATE USER steve IDENTIFIED BY button;

CREATE USER gail IDENTIFIED BY seymour;

GRANT CREATE SESSION TO steve, gail;

Изменение пароля пользователя

Можно изменить пароль пользователя с помощью оператора ALTER USER.

Следующий оператор ALTER USER изменяет пароль для пользователя jason

на marcus:

290 Гпава 9

□ ALTER USER jason IDENTIFIED BY marcus;

Можно также изменить пароль того пользователя, под именем которого

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

команда PASSWORD. После того как вы введете слово PASSWORD,

SQITPlus предложит вам ввести старый и новый пароли, причем новое

значение пароля должно быть введено дважды для подтверждения правильности

ввода. В следующем примере вы подключаетесь как пользователь

jason и выполняете команду PASW0RD; обратите внимание, что пароль

отображается в виде звёздочек:

□ CONNECT jason/marcus

PASSWORD

Changing password for Jason

Old password: ******

New password: ******

Retype new password: ******

Password changed

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

Пользователя можно удалить при помощи оператора DROP USER. В следующем

примере мы подключаемся к базе данных как пользователь system и

используем оператор DROP USER для удаления пользователя jason:

□ CONNECT system/manager

DROP USER jason;

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

таблицы и т. п., то вам нужно будет добавить ключевое слово CASCADE после имени пользователя

в выражении DROP USER. Однако перед тем, как сделать это, необходимо убедиться, что

другим пользователям больше не понадобится доступ к этим объектам.

Системные привилегии

Системная привилегия позволяет пользователю выполнять определенные

действия с базой данных, например, выполнять операторы DDL. Например,

привилегия CREATE TABLE позволяет пользователю создавать таблицы

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

показаны в таблице 9.1.

Примечание Полный перечень системных привилегий можно найти в руководстве Oracle

SQL Reference (Справочник по SQL Oracle).

Как вы увидите позже, привилегии могут быть сгруппированы в роли.

Две полезные роли, которые можно дать пользователю, это CONNECT и

RESOURCE. CONNECT позволяет пользователю подключиться к базе данных;

RESOURCE позволяет пользователю создавать различные объекты базы данных

- таблицы, последовательности, код PL/SQL и т.п.

Пользователи, привилегии и роли 291

Таблица 9.1. Часто используемые системные привилегии

Системная привилегия Позволяет..

CREATE SESSION Подключаться к базе данных.

CREATE SEQUENCE Создавать последовательность. Последовательностью называется

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