В моей компании есть продукт BI, который в основном предоставляет решение с графическим интерфейсом для самостоятельных SQL-запросов без кодирования.
Теперь у нас есть этот огромный клиент, у которого есть система управления доступом к данным с правилами в соответствии с ролями и командами, которые уже существуют. Мы просто интегрировали их систему в наш инструмент и решили, что работа выполнена.
Однако одним из их требований было то, что им необходимо управление доступом к данным не только по источникам данных, но и по результатам; и они должны сделать это автоматически. Они объяснили, что когда руководство делится запросами с командами, требуется, чтобы сотрудники в разных отделах только соответственно видели данные. И они не могут, чтобы менеджеры понимали, как настроить правила доступа вручную.
Say you select something from table A & table B:
Select A.FieldA as FA, B.FieldB as FB, X=A.FieldA+B.FieldB
from A join B group by Z where X > 100
Of the query result:
FA inherit A.FieldA's data access rules;
FB inheirt B.FieldB's;
X inherit the join set of both.
Что усложняет ситуацию, так это то, что результаты одного запроса могут использоваться в качестве источников данных в будущих запросах.
Раньше мы ничего подобного не делали, и начинать с нуля тоже не дешево.
Кто-нибудь знает какие-либо готовые реализации или более простые решения этой проблемы?