web-dev-qa-db-ja.com

Linuxアカウントにpostgresスーパーユーザーを付与する

私の開発(Ubuntu Linux)ラップトップには、Postgresインストールを所有するpostgres OSアカウントがあります。

Postgresアクティビティの実行、データベースの作成/削除などを行う場合は、最初にpostgresアカウントにsuする必要があります。

$ Sudo su postgres

postgresのOSレベルの権限を持つように自分のOSアカウントをどのように変更できますか?sする必要はありませんか?

5
ardochhigh

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 
5
Craig Efrein