1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Flutter x Supabase でカスタムスキーマを作成したときの手順と `permission denied for schema` のエラー解消

Posted at

これなに

カスタムスキーマを作成した際に permission denied for schema というエラーが出たので、その解消方法をメモ。
ついでに Flutter で Supabase のカスタムスキーマに切り替えた時のおおよその手順もメモ。

実際に遭遇したエラー

my_schema_test というスキーマを作成して、スキーマ切り替えテストで debugPrint していたらこんな感じのエラーが出てきた。
のちにわかるものですが、権限設定が不足していたようです。

PostgrestException(message: permission denied for schema my_schema_test, code: 42501, details: Unauthorized, hint: null)

参考ガイド

以下の公式ガイドに記載されている通り、権限付与をしてくださいとのことで、これが全てでした。
https://supabase.com/docs/guides/api/using-custom-schemas?queryGroups=language&language=curl
image.png

カスタムスキーマ利用の全体の手順

1: スキーマ作成

GUI からスキーマを作成、かんたん。
image.png
image.png

2: 権限設定

前述の通りスキーマを作成したら権限付与

GRANT USAGE ON SCHEMA my_schema_test TO anon, authenticated, service_role;
GRANT ALL ON ALL TABLES IN SCHEMA my_schema_test TO anon, authenticated, service_role;
GRANT ALL ON ALL ROUTINES IN SCHEMA my_schema_test TO anon, authenticated, service_role;
GRANT ALL ON ALL SEQUENCES IN SCHEMA my_schema_test TO anon, authenticated, service_role;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA my_schema_test GRANT ALL ON TABLES TO anon, authenticated, service_role;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA my_schema_test GRANT ALL ON ROUTINES TO anon, authenticated, service_role;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA my_schema_test GRANT ALL ON SEQUENCES TO anon, authenticated, service_role;

3: コードでスキーマ指定

以下の通りスキーマを指定する。

  await Supabase.initialize(
    url: dotenv.env['SUPABASE_URL']!,
    anonKey: dotenv.env['SUPABASE_ANON_KEY']!,
    postgrestOptions: PostgrestClientOptions(schema: 'my_schema_test'), // ここを追記
  );

image.png

おわりに

日本語の情報は無かったので FlutterFlow とか Stackflow とか Github issue とか漁ってました。
だけど最終的に公式のガイド見つけたのでそれで解決しました、よかったよかった。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?