2014-12-09 4 views
0

У меня есть база данных. Мне нужно скрыть несколько столбцов (col4, col5) таблицы (table1) из group_role_B. group_role_A должен иметь разрешение просматривать (и обновлять) все столбцы.как скрыть чувствительные столбцы postgres

Я использую групповые роли ... код я использую (который не работает) является:

GRANT USAGE ON SCHEMA household TO group_role_A; 
GRANT USAGE ON SCHEMA household TO group_role_B; 
GRANT UPDATE, INSERT, SELECT, DELETE ON ALL TABLES IN SCHEMA household TO group_role_A; 
GRANT SELECT ON TABLE household.table2, household.table3, household.table4 TO group_role_B; 
GRANT SELECT (col1, col2, col3, col6, col7, col8) on table household.table1 TO group_role_B; 

результата: , когда открывается «вид» group_role_B Table1 таблица с «прерывающимся» сообщением и не показывает никаких данных.

Любая помощь оценена - я застрял на этом некоторое время.

Альтернативой было бы использовать «вид», который мог бы выбрать group_role_B. Я просто надеялся, что могу избежать этого, используя привилегии столбца.

Бекки

+0

Как вы «открываете» стол? Просто выберите столбцы, которые вы можете выбрать, и они должны работать нормально. –

+0

Я использую pgadmin ... и просто щелкнул правой кнопкой мыши на «просмотр таблицы» .. но при использовании выбора sql он возвращает сообщение «разрешено отклонение для отношения домохозяйства» – user3770062

+0

Вы можете создать «представление», в котором отображаются только столбцы вы хотите показать. –

ответ

-1

Я бы на вид решения.

Просто прочитал, что для Oracle (и может быть, что то же самое относится и к Postgresql ...)

только INSERT, UPDATE и привилегии ссылки могут быть предоставлены на уровне столбцов

нашел эту информацию here

+0

сам запрос, и он предполагает, что он будет работать на этой веб-странице: http://www.postgresql.org/docs/8.4/static/sql-grant.html – user3770062

+0

Downvoted, потому что Oracle не PostgreSQL и документация не является взаимозаменяемым между ними. – Grod

Смежные вопросы