CultusReport

Web, PHP, smarty, PEAR, e-commerce, or other internet technologies

UbuntuへのPostgreSQLのインストール・設定

前回はMySQLUbuntuにインストールしましたが、
今回はPostgreSQLをインストールしてみます。

PostgreSQLのインストール・接続

Ubuntuでは以下のコマンドを実行すると、PostgreSQLをインストールできます。
インストールできるバージョンはPostgreSQL9.3です。

sudo apt-get update
sudo apt-get install postgresql

インストール後は、以下のコマンドでデータベースに接続します。
以下の例では、ユーザー"postgres"として、データベース"postgres"に接続します。

sudo su postgres
psql -d postgres -U postgres

ユーザーの作成

以下のSQLでユーザーを作成します。
ユーザー"app_user"を作成し、パスワードを"myPassword"に設定します。

CREATE USER app_user WITH PASSWORD 'myPassword';

作ったユーザーのパスワードを変更する場合はALTERを使います。

ALTER USER app_user WITH PASSWORD 'myNewPassword';

データベース・テーブルの作成

最初に、データベース"test"をつくってみます。

CREATE DATABASE test;

コマンドはとてもシンプルですね。
つくったデータベース"test"に以下のコマンドで接続してみます。

\c test

データベースにテーブルを作成します。
今回は、2カラムで構成されている、シンプルなテーブルを作成します。
カラム名はid、nameです。

CREATE TABLE test_table(id serial, name varchar(30));

接続しているデータベースのテーブル一覧を表示して確認してみましょう。

\z

データベース"test"の初期化

新規に作成したデータベースの権限を明示的に初期化します。

REVOKE ALL ON DATABASE test FROM PUBLIC;
REVOKE ALL ON SCHEMA public FROM PUBLIC;

これで、スーパーユーザーpostgres以外のユーザーがデータベース"test"に接続
できなくなります。

権限の追加

データベースの権限を初期化したあと、他のユーザーに接続権限を与えていきます。

GRANT CONNECT ON DATABASE test TO app_user;

接続権限を与えた前後で、以下のコマンドを実行すると、権限変更の差分が見て取れます。
以下はデータベースユーザの一覧を表示するコマンドです。

\du

接続権限に加えて、SELECT、UPDATE、INSERT、DELETEの権限も与えてみます。

GRANT SELECT, UPDATE, INSERT, DELETE ON ALL TABLES IN SCHEMA public TO app_user;
GRANT USAGE ON SCHEMA public TO app_user;
GRANT SELECT, UPDATE ON ALL SEQUENCES IN SCHEMA public TO app_user;

とりあえず、今日はここまで。