본문 바로가기

SQL/POSTGRESQL.

[PostgreSQL] RLS의 제한과 추가 검증 제어- USING, WITH CHECK

728x90

WITH CHECK 절과 USING 절은 PostgreSQL의 CREATE POLICY 문에서 정책이 적용되는 행과 열에 대한 제한과 추가 검증을 제어하는 데 사용된다.

 

USING

USING 절은 WHERE 절과 비슷하게 작동한다고 생각하면 된다.즉, USING 절에 지정된 조건이 참인 경우에만 허용된다.

PostgreSQL의 CREATE POLICY 문에서 정책이 적용되는 조건을 지정하는 데 사용된다. USING 절은 선택적이며, 정책이 적용될 조건을 지정하지 않으면 해당 정책은 항상 적용된다.

 

 

CREATE POLICY sales_policy
ON sales
FOR SELECT, INSERT, UPDATE, DELETE
TO sales_role
USING (user_id = current_user);

    👉🏻 sales 테이블에서 SELECT, INSERT, UPDATE, DELETE 작업을 수행할 때, sales_role 역할의 사용자가 해당 조건(user_id = current_user)을 충족할 때만 허용되는 CREATE POLICY문이다. 

    👉🏻 user_id와 current_user는 PostgreSQL 내장 변수

 

 

WITH CHECK

PostgreSQL의 CREATE POLICY 문에서 해당 정책이 적용된 후, 삽입, 갱신 또는 삭제 작업을 수행할 때 추가적인 검증을 수행하도록 지정한다.

 

 

CREATE POLICY sales_policy
ON sales
FOR SELECT, INSERT, UPDATE, DELETE
TO sales_role
USING (user_id = current_user)
WITH CHECK (user_id = current_user);

    👉🏻 변경 작업을 수행할 때에도 해당 조건을 충족해야만 허용된다.

 

728x90
반응형

'SQL > POSTGRESQL.' 카테고리의 다른 글

[PostgreSQL] Row Level Security  (0) 2023.03.30