Есть ли роли у владельца в oracle?

8

Предположим, что я вошел в базу данных Oracle с помощью пользователя X, а затем пользователь X создает некоторые роли с помощью create roleкоманды. Я хочу знать, что пользователь X является владельцем ролей? Могу ли я выбрать все роли, созданные пользователем X?

Рахим Аскари
источник

Ответы:

4

Роли в базе данных Oracle не имеют владельца, а каталоги не имеют владельца.

Когда пользователь с привилегией CREATE ROLEили SYSDBAсоздает эту роль, ему автоматически назначается эта роль, WITH ADMIN OPTIONчто означает, что пользователь может впоследствии предоставить эту роль другим пользователям, даже если эта привилегия CREATE ROLEотозвана у пользователя.

Вы можете увидеть, какие роли назначены для каких пользователей, запрашивающих DBA_ROLE_PRIVSпросмотр, или USER_ROLE_PRIVSесли вы хотите знать, какие роли назначены текущему пользователю.

Кроме того, пользователь не может создать роль, если роль с таким именем уже существует. Однако вы можете проверить создание и предоставление ролей. Вы можете сделать это с помощью оператора AUDIT ROLE (если он по какой-то причине был отключен с помощью NOAUDIT ROLE), а затем запросить DBA_AUDIT_TRAILпредставление.

Ясир Арсанукаев
источник
1

Хотя у роли нет владельца, dba_role_privs показывает как пользователей, так и роли, предоставленные привилегии.

--This lists both users and roles
SELECT * FROM dba_role_privs
WHERE admin_option = 'YES'
order by grantee, granted_role;

Inner Присоединяйтесь к dba_users, чтобы видеть только пользователей с опцией администратора на роли.

--This lists only users with admin option on roles
SELECT rp.grantee, rp.granted_role, rp.admin_option
FROM dba_role_privs rp
JOIN dba_users u
  ON rp.grantee = u.username
WHERE admin_option = 'YES'
ORDER BY grantee, granted_role;
ExcessOperatorHeadspace
источник
0

Если у вас есть опция администратора над ролью, вы можете удалить эту роль, даже если вы не обладаете привилегией удаления роли или «владеете» ролью, как, например, вы не создали эту роль.

искриться
источник