| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Oracle > Вывести права указаного пользователя |
| Автор: N1ko 24.6.2010, 16:55 |
| Здравствуйте, подскажите как вывести все права, доступные указаному пользователю |
| Автор: ToshaCh 29.6.2010, 17:50 |
В смысле доступные? Не врубился в вопрос. |
| Автор: N1ko 8.7.2010, 09:29 |
| Ну права, которые выданы пользователю. |
| Автор: ToshaCh 8.7.2010, 13:48 |
| Не всё так просто, на самом деле. Проблема в том, что права в оракл это комклексное понятие, поэтому там помойка. Примерно как Windows со всеми эти группами и наследованиями. Реальные эффективные права текущей сессии можно посмотреть в session_privs. Права пользователя разделяются на системные (user_sys_prev), объектные (user_tab_privs) и колоночные (user_col_privs). Кроме того добавляет гемороя то, что существуют ещё так называемые роли. Эта ерунда очень похожа по своему действию на группу. Ты грантуешь что-нить какой-нить роли, а потом даёшь эту роль куче пользователей. Соответственно с этим связанны таблички типа dba_role_privs. В общем всё надёжно просто и по индуски. Вот http://www.adp-gmbh.ch/ora/misc/recursively_list_privilege.html пара скриптов, которые это разруливают. Дерзай. З.Ы. Ну и для неосведомлёных. Раз есть user_sys_prev, значит есть и dba_sys_prev. Первая покажет только данные о текущем пользователе, вторая обо всех. Но нужна роль dba. |