У меня есть 35 получателей прав из таблиц dba_sys_privs и dba_tab_privs, которые не отображаются как имена пользователей в таблице dba_users. Они не назначаются как роли в таблице dba_role_privs. Можно ли их использовать/войти в систему?
Можно ли войти в систему получателей прав из dba_*_privs, если они не найдены в таблице dba_users?
Ответы (1)
Комментарий Джастина Кейва должен объяснить 34 из ваших 35 значений: роль может быть в DBA_ROLES
, но не в DBA_ROLE_PRIVS
.
Последнее значение, вероятно, PUBLIC
, это специальная роль, которая работает по-другому. чем другие роли.
--Grantees who are not users or roles.
select * from
(
--Grantees
select grantee from dba_sys_privs union
select grantee from dba_tab_privs
)
minus
(
--Users and roles
select username from dba_users union
select role from dba_roles
);
GRANTEE
-------
PUBLIC
Если вы используете as sysoper
, вы можете сделать так, чтобы это выглядело так, как будто вы вошли в систему как ОБЩЕСТВЕННЫЙ. , но это не считается.
person
Jon Heller
schedule
16.09.2013
dba_roles
? Илиdba_role_privs
?dba_roles
перечисляет все доступные роли.dba_role_privs
указывает, какие роли предоставляются разным пользователям. Вполне возможно иметь роли, которым предоставлены привилегии, но которые сами по себе не назначены никаким пользователям. Также возможно, что роли предоставляются другим ролям (что вы увидите вrole_role_privs
), а не непосредственно другим пользователям. Есть ли шанс, что вы могли бы показать нам, какие именно запросы вы выполняете и какие именно результаты вы получаете? - person Justin Cave   schedule 17.09.2013