Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Вывести права указаного пользователя


Автор: N1ko 24.6.2010, 16:55
Здравствуйте, подскажите как вывести все права, доступные указаному пользователю

Автор: ToshaCh 29.6.2010, 17:50
Цитата(N1ko @  24.6.2010,  16:55 Найти цитируемый пост)
доступные указаному пользователю

В смысле доступные? Не врубился в вопрос.

Автор: 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. 


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)