Нет простого способа справиться с этим, что я видел.
Не уверен, ищете ли вы идеи или нет, но это зависит от того, сколько существует возможных вариантов и насколько динамично вы хотите найти решение.
Я никогда не работал в магазине, который использовал разрешения на уровне столбцов на уровне СУБД, но предположил, что есть группы столбцов, заблокированных для различных ролей. Если бы было несколько (скажем, 3) вариантов, то я, вероятно, просто сделал бы три версии объекта данных и поменял бы подходящую перед поиском.
В противном случае более трудным вариантом будет динамическое изменение объекта данных перед извлечением либо по роли, либо каким-либо образом запрашивая системные таблицы.
Еще одна идея, которую я никогда не пробовал и не уверен, сработает ли она, - это динамическое создание объекта данных из SQL. Я считаю, что функция называется createfromsql, и просто используйте select * from xyz, но это будет возможно только в том случае, если только для отображения, в противном случае у вас будет много динамических изменений, чтобы сделать объект данных обновляемым и установить все обновляемые столбцы.
Удачи.