#sql #oracle
#sql #Oracle
Вопрос:
Я новичок в Oracle и работаю над некоторыми домашними заданиями, касающимися прав администратора и т.д., И мне неясно, как решить этот вопрос:
Напишите инструкцию SQL, чтобы перечислить пользователей и роли, которые имеют права на УДАЛЕНИЕ во всех таблицах, принадлежащих пользователям в вашей базе данных, кроме SYS и SYSTEM.
Есть предложения? Спасибо!
Комментарии:
1. Начните с
dba_tb_privs
.
Ответ №1:
Следующий запрос может помочь :
select grantee
from
(
select ( select count(1)
from dba_tables t
where owner not in ('SYSTEM','SYS') ) as count_all_tables,
p.grantee, count(1) as count_del_privs_per_grantee
from dba_tab_privs p
where p.privilege = 'DELETE'
and exists ( select *
from dba_tables t
where owner not in ('SYSTEM','SYS')
and t.owner = p.owner
and t.table_name = p.table_name )
group by p.grantee
)
where count_all_tables = count_del_privs_per_grantee;