powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DEFAULT ROLE
3 сообщений из 3, страница 1 из 1
DEFAULT ROLE
    #32158306
igoreha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!
Может кто подскажет?
Ситуация такая:
Пользователь IGOR выдает роль TEST_ROLE пользователям TEST1 и TEST2:
GRANT TEST_ROLE TO TEST1;
GRANT TEST_ROLE TO TEST2;
Смотрю, у TEST2 она DEFAULT = NO, у TEST1 DEFAULT = YES.
Скрипты пользователей:

CREATE USER "TEST1" IDENTIFIED BY VALUES '09D528EDB6A59F14'
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT;

CREATE USER "TEST2" IDENTIFIED BY VALUES '4D6F53A248459F6E'
DEFAULT TABLESPACE SYSTEM
TEMPORARY TABLESPACE SYSTEM
PROFILE DEFAULT;

Отличаются пользователи тем, что TEST2 был создан неизвестно кем и когда, но определенно около 5 месяцев назад. Ну и TABLESPACE разные. При этом создаю пользователя TEST3 тем же скриптом, что и для TEST2, ему роль выдается с DEFAULT = YES.
После выдачи роли никаких ALTER USER TEST2 DEFAULT ROLE NONE нет.

Где то в какой то доке вычитал:
Warning: When you create a role, it is granted to you implicitly and added as a default role. You will get an error at login if you have more than MAX_ENABLED_ROLES. You can avoid this error by altering the user's default roles to be less than MAX_ENABLED_ROLES. Thus, you should change the DEFAULT ROLE settings of SYS and SYSTEM before creating user roles.

Что это за DEFAULT ROLE settings такие для SYS и SYSTEM ???
И все таки, что в пользователях TEST1 и TEST2 разное или что должно быть у пользователя, что бы роли выдавались ему DEFAULT = NO.
...
Рейтинг: 0 / 0
DEFAULT ROLE
    #32158843
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
When you grant a role to a user it either becomes user default role (role automatically enabled at user login time) or not. You can not specify should granted role be a default role at user create time. By default, user is creted in such way that any role granted to a user becomes a default role (DEFAULT ROLE ALL). Then you can issue ALTER USER DEFAULT ROLE statement to change that. And that it where Oracle plays a little trick on you. There is no place in data dictionary views to check what are the current settings for user default roles. As a result you never know if granted role will become a default roile or not (unless you created user yourself and/or know all ALTER USER DEFAULT ROLE issued against that user). Based on your posting I can assume that user TEST1 default setting DEFAULT ROLE ALL was changed at some point with ALTER USER TEST1 DEFAULT ROLE statement. If you issue ALTER USER TEST1 DEFAULT ROLE ALL, any role granted to TEST1 will be a default role again. SYS and SYSTEM follow the same rules.

SY.
...
Рейтинг: 0 / 0
DEFAULT ROLE
    #32159157
igoreha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY спасибо!

Однажды выполненная команда для пользователя
ALTER USER TEST2 DEFAULT ROLE NONE
определяет что все выданные в последующем ему роли
GRANT ROLE1 TO TEST2
GRANT ROLE2 TO TEST2
...
будут DEFAULT = NO! Причем (верю наслово) нигде и не посмотреть данную установку у пользователя.
Соответсвенно, после выполнения
ALTER USER TEST2 DEFAULT ROLE ALL
все выданные в последующем ему роли будут DEFAULT = YES.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DEFAULT ROLE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]