Oracle как разблокировать/заблокировать пользователя

Проблема:
1. Вывести список разблокированных пользователей
3. Вывести список заблокированных пользователей
4. Вывести информацию о конкретном пользователе
5. Нужно заблокировать пользователя (залочить пользователя) в Oracle.
6. Как разблокировать пользователя (разлочить пользователя)в Oracle.

Инструментарий: Oracle 10, Oracle 11
В предыдущей заметке я описывал как получить список пользователей которые созданы в Oracle.

  • В разблокированных пользователей статус (account_status) равен Open. Выведим список разблокированных пользователей:
SELECT username, -- Логин account_status, -- Статус аккаунта lock_date -- дата блокировки(если пользователь заблокирован) FROM dba_users WHERE account_status = 'OPEN';
Code language: SQL (Structured Query Language) (sql)
usernameaccount_statuslock_date
SYSOPEN(null)
SCOTTOPEN(null)

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

  • Чтобы вывести список всех заблокированных пользователей можно воспользоваться запросом:
SELECT username, -- Логин account_status, -- Статус аккаунта lock_date -- дата блокировки(если пользователь заблокирован) FROM dba_users WHERE (account_status = 'LOCKED') OR (account_status ='EXPIRED & LOCKED');
Code language: SQL (Structured Query Language) (sql)
usernameaccount_statuslock_date
ANONYMOUSEXPIRED & LOCKED25.06.2013 12:16:22
ALEXLOCKED15.05.2014 10:00:00
  • Для того чтобы просмотреть информацию об конкретном пользователе можно воспользоваться тем же запросом, но с другими параметрами (К примеру будим просматривать информацию о пользователе SCOTT):
SELECT username, -- Логин account_status, -- Статус аккаунта lock_date --дата блокировки(если пользователь заблокирован) FROM dba_users WHERE USERNAME = UPPER('SCOTT');
Code language: SQL (Structured Query Language) (sql)
usernameaccount_statuslock_date
SCOTTOPEN(null)
  • Следующая задача — нужно заблокировать пользователя (залочить пользователя) в Oracle. Для блокировки пользователя (воспользуемся учетной записью пользователя SCOTT, и заблокируем его) нужно выполнить
ALTER USER SCOTT ACCOUNT LOCK;
Code language: SQL (Structured Query Language) (sql)

Если запрос выполнился успешно — можно выполнить предыдущий запрос чтобы просмотреть информацию о пользователе SCOTT. В результате у нас будет следующая информация:

usernameaccount_statuslock_date
SCOTTLOCKED16.05.2014 10:00:00
  • Мы подошли к главному вопросу. Как же разблокировать пользователя, который был заблокирован в Oracle. Пользователь может быть заблокирован в Oracle по нескольким причинам, одна из них — при входе был введен несколько раз неправильный пароль. Так что действие разблокировки осуществляется следующим образом:
ALTER USER SCOTT ACCOUNT UNLOCK;
Code language: SQL (Structured Query Language) (sql)

Для проверки выполним запрос который покажет состояние пользователя в системе.

usernameaccount_statuslock_date
SCOTTOPEN(null)

Добавить комментарий