どうも、PrAha Inc. CEOです。特技はエンジニアのモノマネです。 今回はマルチテナント型のサービスを設計する時にお世話になるPostgreSQLのRow Level Securityにポリシーを設定し忘れと何が起きるのか共有します。 Row Level Securityとは その名の通り「行単位」でアクセス権限を分けられるため、「この行は、特定のテナントidを持った人だけ取得できる」みたいな細かなアクセス権限ができる。 何が起きたのか PostgreSQLのRLS(Row Level Security)を設定した結果、何をINSERTしようとしても「new row violates row-level security policy for table」と怒られるようになった 結論 PostgreSQLのRLSはデフォルト拒否設定(ポリシーを指定し忘れると、アクセスを拒否される)
