CentOSでPostgreSQL!一般ユーザ用のDBを作って操作する方法!
PostgreSQLはインストール済みだとして話を始めます。
postgresをインストールするとデフォルトで
postgresユーザ(スーパーユーザ)とpostgresデータベースが作成されています。
ですので、初めの操作は基本的にpostgresユーザで行っていきます。
ただ、注意しなければいけない点として、
・OSのユーザ名とpostgresのユーザ名は同じでないと操作できない
・postgres内にそのユーザに属するDBが存在しないと操作できない
というのがあります。
したがって、postgresをインストールして、
service postgresql-9.3 initdb --encoding=UTF8 --no-locale
とかやってデータベースクラスタを初期化しても、
基本的にOSの一般ユーザからpostgresにアクセスできません。
なので、OSの一般ユーザからpostgresを操作するためには、
・一般ユーザと同じ名前のpostgresのユーザの作成
と
・そのユーザに属するDBの作成
をする必要があるわけです。
では、そのやり方をメモメモ。
まず、OSにpostgresユーザを作成。
useradd postgres passwd postgres ・・・・・ ・・・ ・
次に、postgresユーザに切り替え。
su postgres
postgresユーザでPostgreSQLにDBを作成。
createdb testdb
作成したtestdbデータベースにユーザを割り当てる。
tanakaというユーザはOSで普段使用している一般ユーザと同名だと仮定して下さい。
create role tanaka with login;
これで、PostgreSQL内のtanakaユーザに属するtestdbデータベースは、
OS内の一般ユーザtanakaからアクセスできるようになります。
su tanaka
でtanakaユーザにOSを切り替えて、
psql -U tanaka -d testdb
で入るわけですね。