Узнайте, получил ли пользователь разрешение выбрать/обновить / … таблица/функция / … в PostgreSQL

Не работает для меня. Использование UINavigation в качестве модального контроллера вида.

Очевидно, цвет заголовка должен быть установлен на уровне приложения

Редактировать:

Лучший способ - изменить заголовок навигации в каждом контексте VC:

[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], NSForegroundColorAttributeName,nil]];
11
задан finnsson 3 June 2009 в 19:49
поделиться

2 ответа

Я обнаружил, что это лучший подход (и я, кажется, помню, что это было сделано из некоторых запросов, встроенных в psql, или, возможно, представлений information_schema) заключается в использовании функций has _ * _ привилегии и простом применении их к набору всех возможных комбинаций пользователя и объекта. Это также будет учитывать наличие доступа к объекту через некоторую групповую роль.

Например, это покажет, какие пользователи имеют какой доступ к некаталогическим таблицам и представлениям:

select usename, nspname || '.' || relname as relation,
       case relkind when 'r' then 'TABLE' when 'v' then 'VIEW' end as relation_type,
       priv
from pg_class join pg_namespace on pg_namespace.oid = pg_class.relnamespace,
     pg_user,
     (values('SELECT', 1),('INSERT', 2),('UPDATE', 3),('DELETE', 4)) privs(priv, privorder)
where relkind in ('r', 'v')
      and has_table_privilege(pg_user.usesysid, pg_class.oid, priv)
      and not (nspname ~ '^pg_' or nspname = 'information_schema')
order by 2, 1, 3, privorder;

Возможные привилегии подробно описаны в описании из имеет _ * _ привилегированные функции на http://www.postgresql.org/docs/current/static/functions-info.html#FUNCTIONS-INFO-ACCESS-TABLE . . 1246] 'CREATE TEMP' - это привилегия уровня базы данных: он позволяет пользователю использовать схему pg_temp _ * . Его можно протестировать с помощью has_database_privilege (useroid, datoid, 'TEMP') .

18
ответ дан 3 December 2019 в 04:33
поделиться

Взгляните на «Функции запроса прав доступа» , а также на справочную страницу «GRANT» .

6
ответ дан 3 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: