← 一覧へ
データベース・ログイン出る場所:ブラウザの画面・開発者ツールよく出る

データの読み書きが許可されていない(RLS)

new row violates row-level security policy for table "posts"

ひとことで言うと

「この表(テーブル)には、だれが読み書きしてよいかのルールがあり、今の操作はそのルールで止められました」という意味です。Supabase でよく出ます。

よくある原因

  1. RLS(行ごとの安全ルール)をオンにしたが、ルール(ポリシー)を作っていない
  2. ログインしていない状態で書き込もうとした
  3. ルールの条件が、実際のデータと合っていない

自分で確かめること

たいていは、こうすると直ります

そのテーブルに、必要な操作(select・insert など)を許すポリシーを作ります。ルールを外して全部許すのは、安全のため避けます。

AIへの伝え方

下の文をコピーして、ChatGPT・Claude・Cursor などに貼り付けてください。トップで貼り付けたエラー文があれば、自動でそれに入れかわります。

次のエラーが出て困っています。プログラミング初心者にもわかるように、原因と直し方を教えてください。必要なら、直したコードも全部見せてください。

【エラー】
new row violates row-level security policy for table "posts"

【やったこと】
(ここに、エラーが出る前にしたことを書く。例:npm run dev を実行した)

【参考】
このエラーは「データの読み書きが許可されていない(RLS)」というもので、よくある原因は次のとおりです。
・RLS(行ごとの安全ルール)をオンにしたが、ルール(ポリシー)を作っていない
・ログインしていない状態で書き込もうとした
・ルールの条件が、実際のデータと合っていない

どれに当てはまるかを確かめる方法も教えてください。