# アクセス権の設定 アクセス権の設定を行います。Hasuraはテーブルの行単位でアクセス制御を行うことが可能です。このハンズオンでは秘密鍵を持たずとも誰でもREST APIを利用できるようにします。 **注: セキュアではないので本番環境ではJWT等で認証・認可しましょう** [Data Manager] > [View Database] > `pages` テーブル > [Permissions]パネルから、テーブル内のデータのアクセス件を設定可能です。 認証・認可していない利用者のために、ここでは例として `anonymous` ロールを割り当てます。  ## insert (データの挿入) 権限の設定 `anonymous` ロールの行 > insert の列を選択し、データの挿入の権限の設定を行います。 下記の項目を選択し、[Save Permissions]ボタンで権限を保存します。 - Row insert permissions > Without any checks - Column insert permissions > `id` `content` ([Toggle All]ボタンを押す)  ## select (データの取得) 権限の設定 `anonymous` ロールの行 > select の列を選択し、データの取得の権限の設定を行います。 下記の項目を選択し、[Save Permissions]ボタンで権限を保存します。 - Row select permissions > Without any checks - Column select permissions > `id` `content` ([Toggle All]ボタンを押す)  ## update (データの更新) 権限の設定 `anonymous` ロールの行 > update の列を選択し、データの取得の権限の設定を行います。 下記の項目を選択し、[Save Permissions]ボタンで権限を保存します。 - Pre-update check > Without any checks - Post-update check > Without any checks - Column update permissions > `id` `content` ([Toggle All]ボタンを押す)  `anonymous` ロールのinsert、select、updateに✅マークが入っていれば完了です。  ## 環境変数 `HASURA_GRAPHQL_UNAUTHORIZED_ROLE=anonymous` の設定 Hasuraの環境変数として `HASURA_GRAPHQL_UNAUTHORIZED_ROLE=anonymous` を与えることで、認証・認可していない利用者に割り当てられるロールを設定します。 Hasura Cloudのプロジェクトの画面に戻り、[Env vars]にアクセスします。  [+ New Env Var]ボタンを押して、環境変数を追加します。 | 環境変数 | 説明 | 値 | | ---------------------------------- | ---------------------------------------------- | ----------- | | `HASURA_GRAPHQL_UNAUTHORIZED_ROLE` | 認証・認可されていない利用者に割り当てるロール | `anonymous` | 入力後、[Add]ボタン押して追加します。   ## REST APIエンドポイントの確認 実際にHasuraのREST APIエンドポイントにアクセスできるか確認してみましょう。 - プロトコル: HTTPS - ドメイン名: `{Hasura Cloudのプロジェクト名}.hasura.app` | 名称 | HTTPメソッドとパス | 説明 | | ------------ | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | | ページの取得 | `GET /api/rest/page/:id` | 割り当てられた識別子 `id` をもつページを取得します。ページが存在する場合、レスポンスボディには `data.page.content` プロパティを含みます。 | | ページの更新 | `PUT /api/rest/page/:id` | 割り当てられた識別子 `id` をもつページを更新します。リクエストボディには `content` プロパティを与えます。 | 例: `id` が `1` のページにアクセスする [https://memo-demo.hasura.app/api/rest/page/1](https://memo-demo.hasura.app/api/rest/page/1) Hasura Cloudで作成したREST APIエンドポイントにアクセスするには、Hasura Cloudのプロジェクト名の直後に `.hasura.app` を加えたドメイン名でアクセスできます。 たとえば、Hasura Cloudのプロジェクト名が `memo-demo` の場合、ドメイン名は `memo-demo.hasura.app` となります。プロジェクトによって異なるので、自分の作成したプロジェクトに合わせて書き換えましょう。 これで、REST APIエンドポイントをWebアプリから利用する準備が整いました。