
「黒い画面(コマンドライン)での操作は、難しくてよくわからない…」
「自分のアプリケーション専用の、データベースやユーザーを作るには?」
高機能で堅牢なオープンソースデータベース「PostgreSQL」。そのインストール、おめでとうございます!あなたは今、プロのWeb開発者が愛用する、本格的なデータベース環境を手に入れたことになります。
「Ruby on RailsやDjangoの学習で、PostgreSQLが必要になった…」「PostgreSQLをインストールしたいけど、手順がよくわからない!」「MySQLとは、何が違うの?」 プログラミングでWebアプリケ[…]
この記事では、プログラミング初心者の方が、PostgreSQLを使い始める前の「最初のつまずき」を解消できるように、「これだけは、絶対に最初にやっておくべき!」という、必須の初期設定と基本操作を5つのステップに厳選して、どこよりも分かりやすく、ステップ・バイ・ステップで解説していきます。
コマンドライン(黒い画面)を一切使わなくても、本格的なデータベース管理の第一歩が踏み出せます。
-
なぜ、その設定が必要なのか?
-
最強のGUIツール「pgAdmin」を使った、具体的な設定手順
前提:GUIツール「pgAdmin」を使おう!
この記事では、すべての操作を**「pgAdmin」という、PostgreSQLに公式で付属している、非常に高機能なGUI(グラフィカル・ユーザー・インターフェース)管理ツール**を使って行います。
コマンドラインでの操作も強力ですが、データベースの構造や、ユーザー、権限といった複雑な概念は、まずpgAdminのような視覚的なツールを使って**「目で見て理解する」**のが、初心者にとって最も確実で、挫折の少ない学習方法です。
Windows版のインストーラーなら、PostgreSQLと一緒にインストールされているはずです。Macユーザーの方も、公式サイトから簡単にインストールできるので、必ず準備しておきましょう。
「Ruby on RailsやDjangoの学習で、PostgreSQLが必要になった…」「PostgreSQLをインストールしたいけど、手順がよくわからない!」「MySQLとは、何が違うの?」 プログラミングでWebアプリケ[…]
設定1:【基本のき】pgAdminでサーバーに接続しよう
まずは、インストールしたPostgreSQLサーバーに、pgAdminから接続(ログイン)します。
手順
-
pgAdminを起動する
-
インストールされた「pgAdmin 4」を起動します。初回起動時に、pgAdmin自体にログインするための「マスターパスワード」の設定を求められるので、忘れないものを設定してください。
-
-
サーバー接続を確認
-
通常、ローカルPCにインストールした場合、左側のブラウザツリーに「PostgreSQL XX」というサーバーが自動で登録されています。
-
クリックして展開しようとすると、パスワードの入力を求められます。ここに、PostgreSQLをインストールした際に設定した、スーパーユーザーpostgresのパスワードを入力します。
-
エラーなく、サーバーの中身(Databasesなど)が表示されれば、接続は成功です。
-
設定2:アプリケーション専用の「データベース」を作成しよう
インストール直後のPostgreSQLには、「postgres」という名前の、管理用のデフォルトデータベースしかありません。
ここに、あなたの学習用アプリケーションや、Webサービスのデータを、直接保存するのは、良い習慣ではありません。
例えるなら、家の「リビング(管理用DB)」に、仕事の書類も、趣味の道具も、すべてごちゃ混ぜに置くようなもの。
そこで、**アプリケーションごとに、専用の「部屋(データベース)」**を用意してあげましょう。
手順
-
データベース作成画面を開く
-
pgAdminのブラウザツリーで、接続したサーバーの下にある**「Databases」を右クリックし、「Create」→「Database…」**を選択します。
-
-
データベース名を入力
-
「Create – Database」ウィンドウが表示されます。
-
「General」タブの**「Database」の欄に、これから作るアプリケーションにちなんだ、分かりやすい名前を入力します。例えば、ブログアプリならblog_app_db、ECサイトならec_site_dbといった具合です。今回は、練習としてtest_app_db**と入力しましょう。
-
-
所有者を指定
-
「Owner」のドロップダウンリストで、所有者をpostgres(スーパーユーザー)のままにしておきます。
-
-
作成を実行
-
「Save」ボタンをクリックします。
-
ブラウザツリーの「Databases」の下に、test_app_dbという、新しいデータベースが追加されれば、成功です!
-
「Ruby on RailsやDjangoの学習で、PostgreSQLが必要になった…」「PostgreSQLをインストールしたいけど、手順がよくわからない!」「MySQLとは、何が違うの?」 プログラミングでWebアプリケ[…]
設定3:アプリケーション専用の「ログインユーザー」を作成しよう
次に、非常に重要な設定です。
データベースの操作には、必ず「ユーザー」としてログインする必要があります。しかし、何でもできてしまう最高権力者**「スーパーユーザー(postgres)」**を、日常的にアプリケーションから使うのは、セキュリティ上、非常に危険です。
例えるなら、家のすべての部屋の鍵を開けられる「マスターキー」で、普段の生活を送るようなもの。もし、その鍵を落としたら、家中の財産が盗まれてしまいます。
そこで、普段使い用として、**「特定の部屋(データベース)にしか入れない、権限が制限された、専用の合鍵(ログインユーザー)」**を作成します。
手順
-
ログインロール作成画面を開く
-
pgAdminのブラウザツリーで、サーバーのトップレベルにある**「Login/Group Roles」を右クリックし、「Create」→「Login/Group Role…」**を選択します。
-
-
ユーザー名を入力
-
「General」タブの**「Name」**に、新しいユーザーの名前を入力します。test_app_userなど、データベース名と関連付けると分かりやすいです。
-
-
パスワードを設定
-
**「Definition」**タブに切り替えます。
-
**「Password」**の欄に、このユーザー専用の、強力なパスワードを入力し、必ずメモしておきます。
-
-
ログイン権限を与える
-
**「Privileges」**タブに切り替えます。
-
**「Can log in?」のスイッチが「Yes」**になっていることを確認します。これが「No」だと、ログインできない、ただの役割(ロール)になってしまいます。
-
-
作成を実行
-
「Save」ボタンをクリックします。
-
「Login/Group Roles」の下に、test_app_userが追加されれば、成功です。
-
設定4:ユーザーに、データベースへの「アクセス権限」を与えよう
専用のデータベースと、専用のユーザー。これで、家と合鍵の準備ができました。
しかし、このままでは、まだtest_app_userは、test_app_dbという部屋に入ることができません。
最後に、**「この合鍵(ユーザー)で、この部屋(データベース)のドアを開けることを、許可しますよ」**という、権限付与の作業が必要です。
手順
-
データベースのプロパティを開く
-
作成したデータベース**test_app_dbを右クリックし、「Properties…」**を選択します。
-
-
セキュリティ設定タブへ
-
「Properties」ウィンドウで、**「Security」**タブに切り替えます。
-
-
権限を追加する
-
「Privileges」のセクションにある**「+」**ボタンをクリックします。
-
Grantee: ドロップダウンから、先ほど作成した**test_app_user**を選択します。
-
Privileges: このユーザーに与える権限を選びます。アプリケーションから使うユーザーには、通常、すべての権限が必要です。**「ALL」**のチェックボックスにチェックを入れます。
-
Grantor: postgresのままでOKです。
-
-
設定を保存
-
「Save」ボタンをクリックします。
-
これで、test_app_userは、test_app_dbに対して、データの読み書きや、テーブルの作成など、すべての操作を行う権限を得ました。
設定5:新しいユーザーで、接続できるか確認しよう
すべての設定が、正しく行われたかを確認しましょう。
先ほど作った、専用のユーザーとデータベースで、pgAdminから再接続してみます。
手順
-
新しいサーバー接続を作成
-
pgAdminで「Servers」を右クリック → 「Register」 → 「Server…」と進みます。
-
-
新しい接続情報を入力
-
「General」タブ
-
Name: localhost (test_app_user)など、分かりやすい名前をつけます。
-
-
「Connection」タブ
-
Host name/address: localhost
-
Maintenance database: test_app_db(今度は、専用DBを指定)
-
Username: test_app_user(専用ユーザーを指定)
-
Password: 先ほど設定した、test_app_userのパスワードを入力します。
-
-
-
接続!
-
「Save」ボタンをクリックします。
-
新しいサーバー接続が追加され、エラーなく接続できれば、すべての初期設定は完璧に完了です!
-
まとめ
PostgreSQLをインストールした後に、まずやるべきことは、闇雲にデータを触り始めることではありません。
アプリケーション開発のための、安全で、整理された「土台」を、最初にしっかりと築くことです。
-
pgAdminでサーバーに接続する
-
アプリケーション専用の「データベース」を作る
-
アプリケーション専用の「ログインユーザー」を作る
-
ユーザーに、データベースへの「権限」を与える
-
新しいユーザーで、接続できることを確認する
一見、少し面倒に感じるかもしれませんが、この「適切な権限管理」の習慣を、学習の初期段階で身につけておくことは、将来、あなたが安全で、堅牢なシステムを構築するための、非常に重要な礎となります。
「Webサイトの会員情報って、どこに保存されてるの?」「データベースって聞くけど、一体どんな仕組みなんだろう?」 プログラミングを学び始めると、避けては通れないのが**「データベース(DB)」**の世界です。現代のほとんどのI[…]