Oracle 23AI не может подключиться к базе данных как новосозданный пользователь.

Вопрос или проблема

Я установил бесплатную базу данных Oracle 23AI и пытаюсь создать нового пользователя и подключиться к базе данных как этот пользователь. Я использую Sql Developer для подключения к базе данных. После подключения к базе данных как Sys я выполняю следующие команды:

alter session set container = FREEPDB1;
Create User newuser identified by password1;
grant connect to newuser;
Grant create session to newuser;

Все предоставления прав отвечают “grant succeeded”.

Когда я пытаюсь подключиться как newuser, я получаю ошибку:
Status : Failure -Test failed: ORA-01017: invalid credential or not authorized; logon denied

Я пытался предоставить DB_DEVELOPER_ROLE после просмотра видео, которое я нашел на YouTube, но все равно не могу подключиться как newuser. Что я делаю не так?

Из моей среды (oracle free docker + MacOS):

sqlplus sys/Welcome_#1@localhost/FREE as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Dec 3 20:08:04 2024
Version 19.8.0.0.0

Copyright (c) 1982, 2020, Oracle.  Все права защищены.


Подключено к:
Oracle Database 23ai Free Release 23.0.0.0.0 - Разработка, обучение и работа бесплатно
Version 23.5.0.24.07

sys@FREE> alter session set container = FREEPDB1;

Сессия изменена.

Прошло: 00:00:00.04
[200~CreatCreate User newuser identified as password1;
Create User newuser identified as password1
                               *
ОШИБКА на строке 1:
ORA-00924: отсутствует ключевое слово BY


Прошло: 00:00:00.05
sys@FREE> Create User newuser identified by password1;

Пользователь создан.

sys@FREE> grant connect to newuser;

Предоставление прав успешно.

Прошло: 00:00:00.04
sys@FREE> Grant create session to newuser;

Предоставление прав успешно.

sqlplus newuser/password1@localhost/FREEPDB1

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Dec 3 20:10:06 2024
Version 19.8.0.0.0

Copyright (c) 1982, 2020, Oracle.  Все права защищены.


Подключено к:
Oracle Database 23ai Free Release 23.0.0.0.0 - Разработка, обучение и работа бесплатно
Version 23.5.0.24.07

newuser@FREEPDB1>
newuser@FREEPDB1> @whoami
ПОЛЬЗОВАТЕЛЬ - "NEWUSER"

Вам нужно ‘identified by‘ вместо ‘identified as‘.

Примечание:

  • DB_DEVELOPER_ROLE – это новая роль для разработки баз данных в 23ai. Это то, с чем нужно работать.
  • Как разработчик Oracle вы работаете на уровне подключаемой базы данных – ‘FREEPDB1’. Postgres имеет конструкцию ‘create database’, Oracle Database имеет конструкцию ‘create pluggable database’. Подключаемая база данных является автономной и может быть извлечена из ‘FREE’ (контейнерная база данных), работающей на одном хосте, и подключена к другой ‘FREE’ (контейнерная база данных), работающей на другом хосте. Это довольно круто.

Удачи!

Ответ или решение

Решение проблемы подключения к базе данных Oracle 23AI с новым пользователем

Введение

При работе с Oracle 23AI возникают ситуации, когда после создания нового пользователя невозможно установить соединение с базой данных. Это может вызывать затруднения и потребовать дополнительного времени на устранение проблемы. В данной статье мы рассмотрим шаги, которые необходимо предпринять, чтобы корректно настроить пользователя и устранить ошибку "ORA-01017: invalid credential or not authorized; logon denied".

Контекст проблемы

В процессе настройки вы подключились к базе данных как SYS и создали нового пользователя с помощью следующих SQL-команд:

alter session set container = FREEPDB1;
Create User newuser identified by password1;
grant connect to newuser;
Grant create session to newuser;

Команды успешно выполнялись и вы получили сообщения о том, что права были предоставлены. Однако, при попытке подключения с использованием учетных данных нового пользователя, появилась ошибка:

ORA-01017: invalid credential or not authorized; logon denied

Шаги по устранению ошибки

  1. Проверка синтаксиса команд
    При создании пользователя важно использовать правильный синтаксис. В вашем случае, вы использовали identified as, что является неправильным. Правильный метод создания пользователя:

    Create User newuser identified by password1;

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

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

    sqlplus newuser/password1@localhost/FREEPDB1

    Убедитесь, что FREEPDB1 правильно отформатирован в вашей TNS-строке или сетевой конфигурации, и что DNS разрешение имени сервера работает корректно.

  3. Предоставление соответствующих привилегий
    Проверьте, имеет ли новый пользователь достаточно прав для выполнения необходимых действий. После создания пользователя вы предоставили права connect и create session, но если вы хотите, чтобы пользователь выполнял дополнительные операции, добавьте соответствующие привилегии, например:

    Grant DB_DEVELOPER_ROLE to newuser;

    Эта роль предоставляет дополнительные права, необходимые для разработки в Oracle 23AI.

  4. Подключение к правильной контейнерной базе данных
    Убедитесь, что вы находитесь в правильном контексте подключения к Pluggable Database. Вы можете использовать следующую команду для установки правильного контейнера:

    alter session set container = FREEPDB1;
  5. Проверка конфигурации окружения
    Убедитесь, что ваш файл конфигурации tnsnames.ora (или другие используемые параметры при подключении) содержит корректные записи для подключения к вашей PDB. Возможно, потребуется использовать полные параметры подключения, включая сервисный идентификатор.

Заключение

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

Дополнительные ресурсы:

Успехов в работе с базой данных Oracle 23AI!

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

Капча загружается...