Создание и удаление учетными записями
В посте рассматривается базовое описание процесса создания и удаления пользователей, относящийся к группе операторов DML (Data Manipulation Language).
Для подключения к базе данных у пользователя должна быть учетная запись. Параметры учетной записи, права и привилегии определяют возможности пользователя в пределах базы данных. Для управления учетными записями используются следующие:
- CREATE USER – для создания учетной записи,
- ALTER USER – для изменения существующей учетной записи,
- DROP USER – для удаления.
Имя пользователя в пределах базы данных должно быть уникальным. Длина не должна превышать 30 символов. Имя может состоять из латинских букв, цифр, знака доллар ($) и знака подчеркивания (_). Имя пользователя не может быть зарезервированным словом. Если требуется создать пользователя с какими либо спецсимволами в имени, то это можно обойти заключив имя в двойные кавычки.
После того как учетная запись создана изменить ее имя нельзя. Для изменения придется создать новую с требуемым именем и удалить старую. Большим неудобством в случае удаления учетной записи является то, что вместе с ней удаляются и все объекты, принадлежащие этому пользователю.
Для создания пользователя в базе данных будет использован оператор CREATE USER. Упрощенный синтаксис оператора CREATE USER выглядит следующим образом:
CREATE USER имя_пользователя IDENTIFIED BY пароль;
, где
• имя_пользователя – определяет имя, назначенное пользователю базы данных,
• пароль – определяет пароль для пользователя базы данных.
В следующем примере создается пользователь MSU с паролем test:
CREATE USER MSU IDENTIFIED BY test;
У каждой учетной записи есть свой статус. Текущий статус пользователя можно узнать выполнив запрос:
SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS;
Столбец ACCOUNT_STATUS может иметь одно из следующих значений:
• OPEN – учетная запись доступна для использования,
• LOCKED – учетная запись заблокирована DBA. Пользователь не может подключаться к базе данных,
• EXPIRED – истекло время действия. Пароль может иметь срок действия. Пользователь, у которого истекло время действия пароля, не может подключиться к базе данных пока пароль не будет сброшен,
• EXPIRED & LOCKED – учетная запись не только заблокирована, но и истекло время действия пароля,
• EXPIRED (GRACE) – сигнализирует о действии дополнительного времени на действие пароля. В этом случае действие пароля не истекает сразу же, а дается время на его смену,
• LOCKED (TIMED) – учетная запись заблокирована после нескольких неудачных попыток подключиться к базе данных. Учетная запись может быть настроена на блокирование после указанного числа неудачных попыток авторизации.
Для блокировки и разблокировки учетной записи используются команды:
Для блокировки:
ALTER USER имя_пользователя ACCOUNT LOCK; Для разблокировки: ALTER USER имя_пользователя ACCOUNT UNLOCK;
Для принудительной и самостоятельной смены пароля необходимо использовать команду:
ALTER USER имя_пользователя PASSWORD EXPIRE;
Пользователя можно удалить при помощи команды DROP USER. В следующем примере запускается команда для удаления пользователя MSU:
DROP USER MSU;
Если пользователь/схема/schema содержит объекты (например, таблицы), то нужно использовать слово CASCADE в команде удаления:
DROP USER MSU CASCADE;