error: ORA-65096: неверный общий пользователь или имя роли в oracle

Я просто установил oracle11g, и ему не хватало схемы Скотта. Поэтому я пытаюсь создать его сам. Я получил скрипт sql схемы "Скотт", но когда я пытаюсь запустить запрос "создать пользователя Скотта, идентифицированного тигром"; он отображает следующую ошибку:

ORA-65096: неверный общий пользователь или имя роли в oracle.

В принципе, это не позволяет мне создать пользователя "Скотт". Почему это и как я могу исправить свою проблему?

Ответы

Ответ 2

Я только что установил oracle11g

ORA-65096: неверный общий пользователь или имя роли в oracle

Нет, вы установили Oracle 12c. Эта ошибка может быть только на 12c и не может быть на 11g.

Всегда проверяйте версию своей базы данных до 4 знаков после запятой:

SELECT banner FROM v$version WHERE ROWNUM = 1;

Вы должны создать базу данных в виде базы данных контейнера. Хотя вы пытаетесь создать пользователя в контейнере, то есть CDB $ ROOT, однако вы должны создать пользователя в базе данных PLUGGABLE.

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

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

Например, если вы создали подключаемую базу данных в виде pdborcl:

sqlplus SYS/[email protected] AS SYSDBA

SQL> ALTER USER scott ACCOUNT UNLOCK IDENTIFIED BY tiger;

sqlplus scott/[email protected]

SQL> show user;
USER is "SCOTT"

Я предлагаю прочитать, Oracle 12c Post Installation Обязательные шаги

Ответ 3

В оракуле 12c и выше у нас есть два типа баз данных:

  1. контейнер (CDB)

  2. подключаемая база данных (PDB).

Если вы хотите создать пользователя, у вас есть две возможности:

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

Общие пользователи относятся к CBD, а также к текущим и будущим PDB. Это означает, что он может выполнять операцию в контейнере или подключаемом устройстве в соответствии с назначенными привилегиями.

create user c##username identified by password;

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

Локальные пользователи - это просто база данных, которая принадлежит только одному PDB. У этого пользователя могут быть привилегии администратора, но это относится только к этому PDB. для этого вам следует подключаться к подключаемым данным, подобным этому

alter session set container = nameofyourpluggabledatabase;

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

create user username identified by password;

Не забывайте упоминать табличное пространство, оно может быть полезно при импорте. см. это для получения дополнительной информации об этом https://docs.oracle.com/database/121/SQLRF/statements_8003.htm#SQLRF01503

Ответ 4

Если вы столкнулись с точно такой же ошибкой, сделайте следующее:

1) Откройте CMD типа sqlplus и нажмите Enter

2) Подключиться из системного логина

3) Выполнить команду: изменить набор сеансов "_ORACLE_SCRIPT" = true;

4) Для создания другой пользовательской команды запуска: СОЗДАТЬ ИМЯ ПОЛЬЗОВАТЕЛЯ ИДЕНТИФИЦИРОВАНО ПО ПАРОЛУ;

Затем вы можете добавить пользователя и роли.

Ответ 5

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

sql plus
SQL> connect as sysdba;
Enter user-name: sysdba
Enter password:
Connected.
SQL> ALTER USER hr account unlock identified by hr;
User altered
 then create user on sql plus and sql developer

Ответ 6

Если вы столкнулись с точно такой же ошибкой, сделайте следующее:

1) Откройте CMD типа sqlplus и нажмите Enter

2) Подключиться из системного логина

3) Выполнить команду: изменить набор сеансов "_ORACLE_SCRIPT" = true;

4) Для создания другой пользовательской команды запуска: СОЗДАТЬ ИМЯ ПОЛЬЗОВАТЕЛЯ ИДЕНТИФИЦИРОВАНО ПО ПАРОЛУ;

Затем вы можете добавить пользователя и роли.