🐈

PlanetScaleのメンバー設定と権限設定をやってみた

2023/02/08に公開

PlanetScale は 組織(Organization) という単位に 複数のDB を作成でき、 複数のメンバー を所属させることができます。

メンバーには 組織の管理者権限DBの管理者権限 を設定することができます。

今回は "組織にメンバーを追加する方法"、 "組織とDBの管理者権限の設定方法"、 "権限によってできることの違い" をまとめてみました。

組織にメンバーを追加

"USER001" が自身の組織である "organization001" に、"USER002" を招待するというシュチュエーションでメンバーを追加してみます。

設定手順

"Settings" > "Members" > "Invite member" をクリック。

招待するユーザーのメールアドレスを入力して "Send invitation" をクリック
※招待される側も PlanetScale のアカウントが必要になります。

招待中のメンバーの確認や取り消すは "Invitaions" タブで確認できます。

下記のようにメールで招待状が届き "View invitation" をクリックするとリンクが招待を承認するためのページが開きます。

"Join organization" をクリックして承認するとその組織のダッシュボードが表示されます。

※組織の切り替えは画面左上で行うことができる。

USER001 の画面でも USER002 がメンバーに参加していることが確認できます。

これで組織にメンバーを追加することができました。

権限の種類

権限の種類について少し解説します。
PlanetScale の権限は "組織レベルの権限" と "DBレベルの権限" があります。

組織の権限を制御したい場合は "組織レベルの権限" を設定、
DBの権限を制御したい場合は "DBレベルの権限" を設定します。

権限は下記の3つがあります。

  • Organization Member(組織メンバー)
  • Organization Administrator(組織管理者)
  • Database Administrator(DB管理者)

追加されたメンバーはデフォルトで "Organization Member" が割り当てられています。

組織レベルの権限(Organization-level permissions)

組織レベル権限を設定することでメンバーの管理やアクセスログ、セキュリティ設定などの組織設定に関する操作の制御を行うことができます。

設定手順

先程メンバーに追加した USER002 に "Organization Administrator" の権限を設定します。

"Organization Administrator" の権限を持っているアカウントでのみ権限設定を行うことができます。
現状では USER001 が "Organization Administrator" 権限を持っているので、 USER001 のアカウントで "Settings" > "Members" を表示します。

USER002 の "Role" を"Member" から "Administrator" に変更します。
※このとき確認ダアログなどはなく、変更が即反映されるので注意が必要です。
実際に USER002 のアカウントで "Settings" > "Members" を開くと、 "Invite member" ボタンが表示されメンバーを追加する権限が与えられていることが確認できます。

権限による違い

"Organization Administrator" と "Organization Member" では組織、またはDBに対して下記のような制限の違いがあります。

Google翻訳: https://planetscale.com/docs/concepts/access-control#organization-level-permissions

アクション 説明 メンバー 管理者
ブランチを表示 データベース ブランチを表示する
ブランチを作成する データベース ブランチを作成する
非本番ブランチの削除 非運用データベース ブランチを削除する
データベースを表示 1 つまたはすべてのデータベースを表示する
データベースを作成する 新しいデータベースを作成する
デプロイ リクエストを作成する ブランチのデプロイ リクエストを作成する
サービス トークンを管理する サービス トークンの作成、表示、または削除
サービス トークン付与の管理 サービス トークン付与の作成、表示、更新、または削除
組織のメンバーを表示 1 人またはすべての組織メンバーを表示する
データベース メンバーの表示 1 つまたはすべてのデータベース メンバーを表示する
組織を表示 組織を表示する
クエリ統計を表示する 組織のデータベースのクエリ統計を表示する
生産ブランチを削除する 本番データベース ブランチを削除する
本番ブランチ設定 ブランチをプロダクションに昇格させる
データベースの管理 データベースの削除、設定の更新、またはインポート
ベータ機能の管理 ベータ機能のオプトインまたはオプトアウト
本番サービス トークン付与の作成 本番データベース ブランチを接続または削除するためのサービス トークン付与を作成する
統合を更新する サードパーティの統合を更新する
招待状を管理する 組織への招待を表示、作成、またはキャンセルする
請求書の管理 組織の請求書を表示またはダウンロードする
請求の管理 請求プランと支払い方法の表示または更新
監査ログを表示する すべての監査ログを表示
組織のメンバーを管理する メンバーの役割を更新するか、組織のメンバーを削除します
データベース メンバーの管理 メンバー ロールの更新、データベース メンバーの追加または削除
組織の管理 組織の設定、SSO の更新、または組織の削除

DBレベルの権限(Database-level permissions)

DBレベル権限は組織の管理者権限は与えたくないがBDの権限だけは与えたいといった場合に活用できます。

設定手順

USER002 に "Organization Administrator" の権限を設定します。

"Database Administrator" のアカウントで権限設定を行います。
現状では USER001 が "Database Administrator" 権限を持っているので、 USER001 のアカウントで "設定するDB" のダッシュボードを開きます。

"Settings" タブ > "Administrators" > "Add administrator" をクリック

"ユーザー" を選択し "Add administrator" をクリックして設定が完了します。

USER002 が "Administrators" に追加されていることがクニンできます。

権限による違い

"Database Administrator" と "Organization Member" では組織、またはDBに対して下記のような制限の違いがあります。

Google翻訳: https://planetscale.com/docs/concepts/access-control#database-level-permissions

アクション 説明 メンバー 管理者
ブランチの作成と表示 データベース ブランチを作成または表示する
非本番ブランチの削除 特定のデータベースの非運用ブランチを削除する
データベースを見る 組織内のデータベースを表示する
デプロイ リクエストを作成する 特定のデータベースでブランチのデプロイ リクエストを作成する
データベース メンバーの表示 1 つまたはすべてのデータベース メンバーを表示する
クエリ統計を表示する 組織のデータベースのクエリ統計を表示する
非本番バックアップの復元 開発ブランチのバックアップを復元する
請求の管理 特定のデータベースの料金プランを更新する
本番ブランチを削除する 特定のデータベースの運用データベース ブランチを削除する
本番ブランチ設定 特定のデータベースのブランチを本番環境に昇格する
データベースの管理 データベースの削除、設定の更新、またはインポート
ベータ機能の管理 データベースのベータ機能のオプトインまたはオプトアウト
データベース メンバーの管理 データベース メンバー ロールの更新、データベース メンバーの追加または削除
本番バックアップの復元 本番ブランチのバックアップを復元する

おわにりに

今回は PlaetScale の 組織の管理者権限DBの管理者権限 また、"Organization Member"、"Organization Administrator"、"Database Administrator" の設定方法と権限の違いを確認しました。
現時点ではあまり細かな権限設定をすることはできませんが、最低限の設定は行うことができるのでチームでは問題なく運用できるのではないでしょうか。
メンバーの追加削除や権限設定はとても簡単に行うことができるので、ぜひ PlanetScale の権限設定を有効活用してみてください。

参考

https://planetscale.com/docs

Discussion