데이터베이스에 RBAC-RLS 보안을 구현 중이며 질문이 있습니다. 다음은 시나리오입니다.동일한 테이블에 여러 보안 조건 (FILTER | BLOCK)이 있습니다.
로깅 된 사용자에게 해당 권한이 있는지 확인하는 입력 매개 변수 @PermissionId
이있는 하나의 입력 매개 변수가있는 함수가 있습니다. 데이터베이스의 각 역할은 여러 사용 권한과 연결되며 각 사용자는 여러 역할을 가질 수 있습니다.
테이블이 Products
이고 권한이 ReadProducts
인 사용자 만 테이블의 내용을 볼 수 있다고 가정 해 봅시다.
CREATE SECURITY POLICY ReadProducts
ADD FILTER PREDICATE HasPermission('ReadProducts') ON Products
그리고는 OK,하지만 지금 나는 또한 권한 SystemAdministrator
이 그가 필요도 Products
테이블의 내용을 볼 수있는 권한을 가지고.
나는 그것이 가정된다, 또는 두 정책 사이에 충돌이있을 것 같은 다른 정책
CREATE SECURITY POLICY ReadProducts
ADD FILTER PREDICATE HasPermission('SystemAdministrator') ON Products
가 작동겠습니까 추가하면?
다른 상황에서 첫 번째 정책에 다른 필터 조건자를 추가하면 어떻게됩니까? 그러면 다음과 같이됩니다 :
CREATE SECURITY POLICY ReadProducts
ADD FILTER PREDICATE HasPermission('ReadProducts') ON Products
ADD FILTER PREDICATE HasPermission('SystemAdmin') ON Products
괜찮을까요? 내 말은 사용자가이 두 가지 권한 중 하나를 가지고 테이블 Products
의 내용을 볼 수있을 것인가?