TechBridge

롤(Role) & 권한 시스템 — MySQL User와 다른 PostgreSQL의 권한 철학

← 목록으로

📋 실습 안내

✏️ CODE EDITOR (JSX)
▶ 실행 버튼을 눌러 코드를 테스트하세요.
👁️ 내 미리보기 내 코드 실행 결과
🎯 완성 미리보기 목표
위 에디터 코드를 수정해서 이 결과물과 똑같이 만들어보세요!
💡 TODO 주석을 채워서 위 결과물처럼 동작하게 만들어보세요
🤖 AI 선생님에게 질문하기 이번 강의 전용
  선생님이 답변 중이에요...
⚠️ 학습 관련 질문만 답변합니다. 관련 없는 질문은 자동으로 학습으로 유도됩니다.
Q1. PostgreSQL에서 로그인 가능한 역할(User와 동등)을 생성하는 올바른 구문은?
💡 PostgreSQL에서 로그인 가능한 역할은 WITH LOGIN 속성을 포함해야 합니다. CREATE USER는 CREATE ROLE ... WITH LOGIN의 별칭으로 동일하게 작동합니다. NOLOGIN은 그룹 역할(권한 묶음) 생성에 사용됩니다.
Q2. PostgreSQL에서 사용자에게 public 스키마의 users 테이블에 SELECT 권한을 줬는데 여전히 'permission denied for schema public' 오류가 납니다. 추가로 필요한 권한은?
💡 PostgreSQL에서 스키마 내 객체에 접근하려면 해당 스키마에 USAGE 권한이 필요합니다. 테이블에 SELECT 권한이 있어도 스키마 USAGE가 없으면 스키마 레벨에서 차단됩니다. 이는 MySQL에는 없는 PostgreSQL 고유의 계층적 권한 구조입니다.
Q3. GRANT ALL ON ALL TABLES IN SCHEMA public TO app_user; 실행 후, 새로 생성된 테이블에도 자동으로 권한을 부여하려면?
💡 GRANT ALL ON ALL TABLES는 현재 존재하는 테이블에만 적용됩니다. 이후 생성되는 테이블에 자동으로 권한을 부여하려면 ALTER DEFAULT PRIVILEGES를 사용해야 합니다. 이 설정은 특정 역할이 객체를 생성할 때 적용될 기본 권한을 지정합니다.
Q4. PostgreSQL에서 MySQL의 'FLUSH PRIVILEGES'에 해당하는 명령은?
💡 PostgreSQL은 GRANT/REVOKE 실행 시 권한이 즉시 반영됩니다. MySQL처럼 FLUSH PRIVILEGES가 필요하지 않습니다. pg_reload_conf()는 postgresql.conf와 pg_hba.conf를 리로드하는 명령으로 다른 목적에 사용됩니다.
Q5. Row Level Security(RLS)에 대한 설명으로 올바른 것은?
💡 RLS는 테이블별로 ALTER TABLE ... ENABLE ROW LEVEL SECURITY로 활성화합니다. CREATE POLICY로 정의한 조건에 맞는 행만 접근 가능합니다. 슈퍼유저와 테이블 소유자는 기본적으로 RLS를 우회하며, FORCE ROW LEVEL SECURITY로 강제할 수 있습니다.
🎉

퀴즈 통과!

점수: 0점 — 수고하셨습니다!

다음 강의로 →
😅

아쉽네요!

점수: 0점 — 70점 이상이 되어야 통과합니다.