ORA-01031: недостаточно прав - при создании нового пользователя - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть ситуация, когда пользователь создаст новых пользователей и предоставит им грант, но я не смог создать нового пользователя с помощью Apex.enter image description here

Я вошел в систему через system и уже предоставил грант для создания пользователя в системе через бэкэнд.Моя команда предоставления выглядит как

grant create user to system with admin option;, но не может предоставить.

Но если я вошел в систему через SQL Command Line и создал нового пользователя, он позволил мне создать, но не через Apex

enter image description here

Что я делаю не так, пожалуйста, помогите мне.

Примечание Я использую форму апекса длядобавить нового пользователя

enter image description here

1 Ответ

0 голосов
/ 17 ноября 2018

Пользователь базы данных с именем SYSTEM владеет базой данных.Он может создавать пользователей без предоставления вам этой привилегии.

Сказать, что вы вошли (в Apex) как system: я бы посоветовал вам этого не делать.Оставьте оба SYS и SYSTEM в покое.Они специальные , вы не хотите с ними связываться.

Создайте нового пользователя (через SQL * Plus), предоставьте ему create user привилегию и используйте его для такогоцель.Просто для тестирования, вот что я сделал с пользователем HR:

  • У меня Apex 4.0.2, который поставляется с Oracle 11g XE.
  • Есть пользователь базы данных HR, для которого я создал рабочее пространство Apex.
  • Зайдя в Apex как HR, я создал страницу с одним элементом: P3_USERNAME и кнопкой
  • , затем я создал процесс, который запускается при нажатии кнопки.кнопка.Процесс выглядит следующим образом:

    begin
      execute immediate 'create user ' || :P3_USERNAME || ' identified by x';
    end;
    
  • запустил страницу, ввел xxx в элемент и нажал кнопку.

  • проверено ALL_USERSи - вот оно;пользователь xxx здесь

Попробуйте сделать то же самое.Должно быть в порядке.

...