RLS 정책 소유권 및 관리
슈퍼 사용자, 보안 관리자 또는 sys:secadmin 역할이 부여된 사용자는 RLS 정책을 만들고 수정하고 연결하고 분리할 수 있습니다. RLS 정책은 테이블, 뷰, 지연 바인딩 뷰(LBV) 및 구체화된 뷰(MV)에 연결될 수 있습니다. 테이블의 스키마 정의를 수정하지 않고, 객체 수준에서 행 수준 보안을 설정하거나 해제할 수 있습니다.
행 수준 보안을 시작하기 위해 사용할 수 있는 SQL 문은 다음과 같습니다.
ALTER TABLE 문을 사용하여 테이블, 뷰 또는 지연 바인딩 뷰에 대해 RLS를 설정하거나 해제합니다. 자세한 내용은 ALTER TABLE 섹션을 참조하세요.
-
ALTER MATERIALIZED VIEW 문을 사용하여 구체화된 뷰(MV)에서 RLS를 설정하거나 해제합니다. 자세한 내용은 ALTER MATERIALIZED VIEW 섹션을 참조하세요.
CREATE RLS POLICY 문을 사용하여 하나 이상의 테이블에 대한 보안 정책을 생성하고, 정책에서 하나 이상의 사용자 또는 역할을 지정합니다.
자세한 내용은 CREATE RLS POLICY 섹션을 참조하세요.
ALTER RLS POLICY 명령문을 사용하여 정책 정의 변경과 같은 정책을 변경할 수 있습니다. 여러 테이블 또는 뷰에 동일한 정책을 사용할 수 있습니다.
자세한 내용은 ALTER RLS POLICY 섹션을 참조하세요.
ATTACH RLS POLICY 문을 사용하여 하나 이상의 관계, 하나 이상의 사용자 또는 역할에 정책을 연결합니다.
자세한 내용은 ATTACH RLS POLICY 섹션을 참조하세요.
DETACH RLS POLICY 문을 사용하여 하나 이상의 관계, 하나 이상의 사용자 또는 역할에서 정책을 분리합니다.
자세한 내용은 DETACH RLS POLICY 섹션을 참조하세요.
DROP RLS POLICY 문을 사용하여 정책을 삭제합니다.
자세한 내용은 DROP RLS POLICY 섹션을 참조하세요.
GRANT 및 REVOKE 문을 사용하여 조회 테이블을 참조하는 RLS 정책에 SELECT 권한을 명시적으로 부여하고 취소합니다. 자세한 내용은 GRANT 및 REVOKE 섹션을 참조하세요.
sys:secadmin은 SVV_RLS_POLICY 및 SVV_RLS_ATTACHED_POLICY을 통해 생성된 정책을 모니터링할 수 있습니다.
RLS로 보호된 관계를 나열하기 위해 sys:secadmin은 SVV_RLS_RELATION을 볼 수 있습니다.
수퍼유저, sys:operator 또는 ACCESS SYSTEM TABLE 시스템 권한이 있는 모든 사용자는 SVV_RLS_APPLIED_POLICY를 통해 RLS로 보호되는 관계를 참조하는 쿼리에 대한 RLS 정책의 적용을 추적할 수 있습니다. sys:secadmin에게는 기본적으로 이러한 권한이 부여되지 않습니다.
사용자에게 RLS로 보호된 관계에 대한 전체 액세스 권한을 허용하려면 IGNORE RLS 권한을 부여하면 됩니다. 슈퍼 사용자 또는 sys:secadmin에게는 자동으로 IGNORE RLS 권한이 부여됩니다. 자세한 내용은 GRANT 섹션을 참조하세요.
EXPLAIN 계획에서 쿼리의 RLS 정책 필터를 설명하여 RLS 관련 쿼리 문제를 해결하려면, 사용자에게 EXPLAIN RLS 권한을 부여합니다. 자세한 내용은 GRANT 및 EXPLAIN 섹션을 참조하세요.