В следующем примере показано подключение под пользователем 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 Создавать последовательность. Последовательностью называется
ряд чисел, которые обычно используются для автоматического