前回はインストールとサーバ起動+アクセスするところまでやりました。
前回記事は以下のリンクをどうぞ。
今回は、DB作成やロールの作成方法をみていきます。Let’s postgresql!!
DBを作成する
createdb db_name
psqlログイン後の表示でユーザのロールを把握する
psql db_nameでログインした後、以下のようにでたらスーパユーザ
db_name=#
スーパユーザ以外の場合
db_name=>
PostgreSQLにおけるユーザ管理概念〜ロール〜
PostgreSQLは、ロールという概念を使用してデータベースへの接続承認を管理します。 ロールは、その設定方法に応じて、データベースユーザ、またはデータベースユーザのグループとみなすことができます。 ロールはデータベースオブジェクト(例えばテーブルや関数)を所有することができます。 またロールは、どのオブジェクトに誰がアクセスできるかを制御するために、それらのオブジェクトに対しての権限を他のロールに割り当てることができます。 更に、ロールのメンバ資格を他のロールに与えることもできます。 そのため、メンバとなったロールは別のロールに割り当てられた権限を使用することができます。
https://www.postgresql.jp/document/10/html/user-manag.html
ロールという概念を用いてデータベース接続管理をしている。
ロールには、データベースユーザとデータベースユーザのグループがある。
ロールがデータベースObjを所有(管理)する。ロールがどのオブジェクトに誰がアクセスできるか制御。ロールがロールに権限割り当てをする。
わかるようなわからないような。。
とりあえず、ロールという概念がユーザみたいなもんかな。
ロールの作成方法
CREATE ROLE name;
SQLコマンドでロールを作成する。付与できる属性は色々ある。いかにあるもの以外にも、superuserやcreaterole、replicationなどもある。
ログイン権限(属性)の付与
CREATE ROLE name LOGIN;
ログインオプションをつけて、ログイン権限付与
データベース作成権限(属性)
CREATE ROLE name CREATEDB;
パスワード設定(属性)ロール
CREATE ROLE name PASSWORD 'password';
複数属性を設定する場合
CREATE ROLE name LOGIN CREATEDB PASSWORD 'password';
一気に付与可能
ロール作成後の付与属性の変更
ALTER ROLEコマンドで可能
ALTER ROLE name [option]
作成済みのロールの確認方法
SELECT rolname FROM pg_roles;
pg_rolesからrolnameカラムを取得すればOK
作成済みロールの削除方法
DROP ROLE name;
対象を選択してDROPでOK
まとめ
とりあえず、ポスグレの特徴的なロールっていう概念に不慣れながら、少し作業してました。
次はrailsからアクセスして対応します。DMLは他とそんなに変わらない(癖がない)と言われているので、一応そのうち確認だけして特徴をみて行こうかな。紹介はしょったんですが、replicationを実際では使ってます。