【入門編】 pg_roles – PostgreSQL

「誰が何をしていいの?」を管理する名簿――PostgreSQLの『pg_roles』ってなんだろう?

こんにちは!データベースの世界へようこそ。

PostgreSQLを触り始めると、必ずと言っていいほど「ユーザー」や「権限」という壁にぶつかりますよね。「このデータは誰が見られるの?」「誰がデータを消せるの?」といったルールを決めるのは、データベース運用の基本中の基本です。

今日は、そんな複雑になりがちな「誰が、何ができるのか」を一目で教えてくれる、PostgreSQLの頼れる相棒『pg_roles』についてお話しします。

—

「pg_roles」をオフィスに例えてみよう

データベースの中に、ある一つの大きな「オフィス」があると想像してみてください。

オフィスには社長(スーパーユーザー)もいれば、特定のプロジェクトだけを担当するチームリーダー、そしてデータを見る専門の新人スタッフなど、いろんな役割の人が働いていますよね。

もし、オフィスの人数が増えてくると、こんな問題が起きませんか?

  • 「あれ、今のメンバーって誰だっけ?」
  • 「この人は入社したけど、何ができる人だっけ?」
  • 「退職した人のアクセス権、ちゃんと消したかな?」

この「今のメンバーリスト」と「それぞれの役割」を完璧に記録してくれているのが、『pg_roles』というシステムビューなんです。

いわば、データベース界の「社員名簿」ですね。

—

なぜ「pg_roles」を覗く必要があるの?

普段、アプリを作っているだけだと、あまり意識しないかもしれません。でも、いざ運用が始まると「pg_roles」はめちゃくちゃ役に立ちます。

例えば、こんな時に便利です。

  • セキュリティチェック: 「あれ、このユーザーっていつの間に管理者権限(スーパーユーザー)持ってたの!?」と気づくことができます。
  • 棚卸し: 昔作ったテスト用のユーザーが残っていないか確認して、不要な入り口を塞ぐ(セキュリティを高める)ことができます。
  • 権限の確認: 「この人はログインできる設定になっているかな?」といった素朴な疑問も、この名簿を見れば一発で解決です。

—

さっそく名簿を覗いてみよう!

難しいコマンドを覚える必要はありません。まずは、シンプルにこう入力してみてください。

SELECT rolname, rolsuper, rolcanlogin
FROM pg_roles;

これだけで、今のデータベースにいる「ユーザー(ロール)の一覧」と、「管理者かどうか(rolsuper)」、「ログインできるか(rolcanlogin)」という大事な情報がズラッと出てきます。

これを見るだけで、「ああ、この人は管理者なんだな」「お、この人はログイン不可の設定になっているんだな」と、データベースの人間関係が手に取るようにわかってきますよ。

—

初学者のあなたへ:怖がらなくて大丈夫

最初は「システムビュー」なんて聞くと、「何か壊しそうで怖い……」と感じるかもしれません。でも安心してください。

この `pg_roles` は、あくまで「名簿」です。名簿を見るだけで、データベースの中身が壊れることは絶対にありません。図書館の貸出カードを眺めるのと同じようなものだと思って、気軽に覗いてみてください。

「誰がこのオフィスに出入りしているのか」を知ることは、データベースを安全に管理するための第一歩です。

ぜひ、あなたの手元のPostgreSQLでも `SELECT FROM pg_roles;` を試してみてくださいね。どんなメンバーが登録されているか、確認してみると面白い発見があるはずですよ!

それでは、また次回の記事でお会いしましょう!Happy Querying!

コメント

タイトルとURLをコピーしました