プログラミングで飯を食え。腕をあげたきゃ備忘録!

PHP、JavaScript、HTML5、CSS3などWEB系言語を中心に基本テク、備忘録をまとめます。Android、Iphoneアプリ開発についても!

CentOSでPostgreSQL!一般ユーザ用のDBを作って操作する方法!

サクウェブTVはコチラ↓↓↓
サクウェブTV

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

で入るわけですね。