階層型アクセス制御

PostgreSQL データベースの作成

Darryl Reeves

Industry Assistant Professor, New York University

スキーマによるアクセス制御

  • スキーマ: DBオブジェクトの名前付きコンテナ
  • スキーマでアクセス制御が可能
PostgreSQL データベースの作成

例: finances DBでのスキーマ利用

  • finances データベースへの配偶者アクセス
  • 既定の public スキーマを使用
  • 新規スキーマ: me と spouse
CREATE SCHEMA me;
CREATE SCHEMA spouse;
CREATE TABLE me.account (...);
CREATE TABLE spouse.account (...);
PostgreSQL データベースの作成

スキーマ権限の付与

CREATE USER better_half WITH PASSWORD 'changeme';
GRANT USAGE ON SCHEMA spouse TO better_half;
GRANT USAGE ON SCHEMA public TO better_half;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA spouse;

TO better_half;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public

TO better_half;

スキーマベースのアクセス制御を実装

PostgreSQL データベースの作成

グループの活用

  • グループ: 複数ユーザーを識別するロールの一種
  • アクセス制御はグループ単位で適用可能
CREATE GROUP family;
GRANT USAGE ON SCHEMA public TO family;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA

public TO family;
ALTER GROUP family ADD USER fin
ALTER GROUP family ADD USER better_half;
PostgreSQL データベースの作成

共有アクセスと個別アクセス

  • public スキーマで共有アクセスを有効化
  • 個別スキーマでデータアクセスを制御
PostgreSQL データベースの作成

練習してみましょう!

PostgreSQL データベースの作成

Preparing Video For Download...