Как уже неоднократно упоминалось в комментариях, Oracle не рекомендует использовать роли CONNECT
, RESOURCE
и DBA
.
Вы должны подключиться как SYS, чтобы создать свою роль ипользователь (ы), которым дана эта роль.Вы можете использовать SQL Developer или SQL * Plus по своему усмотрению.Не забудьте упомянуть роль SYSDBA в строке входа в систему.connect_identifier
использует разные синтаксисы.
sqlplus sys/<<password>>@<<connect_identifier>> as sysdba
Допустим, у вас есть 12cR1, аналогичный тому, который предоставляется в качестве виртуальной машины с " Oracle Technology Network Day ".Строки подключения могут быть (для подключения к предоставленной PDB):
sqlplus sys/oracle@127.0.0.1/orcl as sysdba
sqlplus sys@"127.0.0.1/orcl" as sysdba -- to avoid putting the pw in clear
Обратите внимание, что в Unix кавычки должны быть экранированы, иначе они будут использованы оболочкой.Таким образом, "
становится \"
.
Затем вы создаете роль MYROLE
и предоставляете ей другие роли или привилегии.Я добавил почти необходимый минимум, чтобы сделать что-то интересное:
create role myrole not identified;
grant create session to myrole;
grant alter session to myrole;
grant create table to myrole;
Далее вы создадите пользователя MYUSER
.Строка, следующая за identified by
, которая является паролем, чувствительна к регистру.Остальное нет.Вы также можете использовать идентификаторы с разделителями SQL (заключенные в кавычки "
) вместо обычных идентификаторов, которые конвертируются в верхний регистр и имеют несколько ограничений.Квота может быть unlimited
вместо 20m
.
create user myuser identified by myuser default tablespace users profile default account unlock;
alter user myuser quota 20m on users;
grant myrole to myuser;
В конце концов, вы подключитесь как новый пользователь.
Обратите внимание, что вы также можете изменить профиль по умолчанию или предоставить другойодин для настройки некоторых параметров, таких как срок действия паролей, количество разрешенных неудачных попыток входа в систему и т. д.