私の開発(Ubuntu Linux)ラップトップには、Postgresインストールを所有するpostgres OSアカウントがあります。
Postgresアクティビティの実行、データベースの作成/削除などを行う場合は、最初にpostgresアカウントにsuする必要があります。
$ Sudo su postgres
postgresのOSレベルの権限を持つように自分のOSアカウントをどのように変更できますか?sする必要はありませんか?
OSでユーザーを作成
# Identify yourself as root
su -
# Create the user who will have access to a postgres database
useradd mypostgresuser
# Add a password
passwd mypostgresuser
postgresへのアクセスをローカルユーザーに与える
Postgresqlインストール用のデータディレクトリ、つまりデータベースファイルを作成した場所を見つける必要があります。通常、これらは/ var/lib/pgsql/dataにあります。インストールの値は、環境変数$ PGDATAで使用できる場合があります。
# Make sure that local users can access postgres
cat /${PGDATA}/pg_hba.conf
# this was the default setting on my 8.4 install
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all
変更を加えた場合、postgresのリロードが必要になります
/etc/init.d/postgresql reload
またはpostgresとして
pg_ctl reload -D $ {PGDATA}
ここでpostgresとしてpsqlに接続します
# Create the user in postgres
postgres=# create user mypostgresuser;
CREATE ROLE
# Give that user access to a database
postgres=# grant all privileges on database mytestdb to mypostgresuser;
GRANT
接続をテスト
# Identify yourself as mypostgresuser
su - mypostgresuser
# Connect to the database
psql -d mytestdb