PostgreSQL で、新しいユーザーと DB を作成する。
新しいデータベース 'heropen' を作成。
%createdb heropen
CREATE DATABASE
'heropen' にアクセス出来るユーザーとして、'hrc009cp' と 'hnt4940c' を作成。(ただ、DB を利用するだけのユーザーなので、新しい DB やユーザーの作成は「権限無し」ってことで)
%createuser hrc009cp
Shall the new user be allowed to create databases? (y/n) n
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER
%createuser hnt4940c
Shall the new user be allowed to create databases? (y/n) n
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER
psql コマンドを実行し、'hrc009cp' と 'hnt4940c' に 'heropen' へのアクセス権を付与する。
%psql -n heropen
Welcome to psql 7.4.3, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
heropen=# GRANT ALL ON DATABASE heropen TO hrc009cp;
GRANT
heropen=# GRANT ALL ON DATABASE heropen TO hnt4940c;
GRANT
heropen=# SELECT datname,datacl FROM pg_database WHERE datname='heropen';
datname | datacl
---------+--------------------------------------------------------------------------------
heropen | {=T/postgres,postgres=C*T*/postgres,hrc009cp=CT/postgres,hnt4940c=CT/postgres}
(1 row)
'hrc009cp=CT/postgres,hnt4940c=CT' から、'hrc009cp' と 'hnt4940c' がスキーマ作成権限(C)とテーブル作成権限(T)を持っていることがわかる。
heropen=# \q
%
これで、ユーザー 'hrc009cp' 等で 'heropen' データベースに新しいテーブルを作ったりということが出来るようになったわけ。
%psql heropen hrc009cp
Welcome to psql 7.4.3, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
heropen=> \q
という具合に、ユーザー 'hrc009cp' で 'heropen' にアクセス可能。
しかーし、このままではユーザーにまったくパスワードが付いていないので危険。
ということで、パスワードを付加する。
%psql heropen
Welcome to psql 7.4.3, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
heropen=# ALTER USER hrc009cp PASSWORD 'herohero55';
ALTER USER
heropen=# \q
%vi data/pg_hba.conf
local all all trust
という行の、trust を password に変更する。
#local all all trust
local all all password
これで、ユーザー hrc009cp が DB に接続する時は、パスワードの入力が必要となる。
<注意>
これだけだと、UDP での利用しか許されてないので、TCP 通信を行う場合は、/usr/local/pgsql/data/postgresql.conf 内の tcpip_socket 行を編集する必要がある。
#tcpip_socket = false
tcpip_socket = true
と、true にした上で、pg_hba.conf に TCP/IP 通信制御用の行を追加する。
(例)
host all all 192.168.0.8 255.255.255.255 password
|
|