create user
ロール作成属性を保持しているユーザ(ロール)にてcreateできます。デフォルトではpostgresユーザで作成する事になるとおもいます。
作成したユーザはpg_hba.confでの制限がない限り、どのデータベースへの接続も可能で、publicスキーマに対してであれば制限なくテーブルの作成データのINSERTが可能となります。
create userによる作成
create user kawa with password 'kawa' nosuperuser nocreatedb nocreaterole inherit ;
create roleによる作成
PostgreSQLでは「ログインできる属性を持つロールがユーザ」となりますので、create roleにて以下のようにしても同様に作成できます。(login属性の指定をしなければ単純にロールを作成するのみです)
create role yama with login password 'yama' nosuperuser nocreatedb nocreaterole inherit ;
作成例
myposdb=# create user kawa with password 'kawa' nosuperuser nocreatedb nocreaterole inherit
myposdb-# ;
CREATE ROLE <-- create userとしても確認メッセージにはROLEと出ます
-- create roleの際は「login属性」を指定する事でcreate userと同じになります。
myposdb=# create role yama with login password 'yama' nosuperuser nocreatedb nocreaterole inherit
myposdb-# ;
CREATE ROLE
-- 作成した2つのユーザを確認します。
myposdb=# SELECT oid,rolname
myposdb-# ,case rolsuper when 'true' then '〇' else '×' end as "super"
myposdb-# ,case rolinherit when 'true' then '〇' else '×' end as "inherit"
myposdb-# ,case rolcreaterole when 'true' then '〇' else '×' end as "createRole"
myposdb-# ,case rolcreatedb when 'true' then '〇' else '×' end as "createDb"
myposdb-# ,case rolcanlogin when 'true' then '〇' else '×' end as "canLogin"
myposdb-# ,case rolreplication when 'true' then '〇' else '×' end as "replication"
myposdb-# ,rolconnlimit as "connLimit"
myposdb-# FROM pg_roles where rolcanlogin = true order by oid
myposdb-# ;
oid | rolname | super | inherit | createRole | createDb | canLogin | replication | connLimit
-------+-------------+-------+---------+------------+----------+----------+-------------+-----------
10 | postgres | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | -1
16384 | sooni | 〇 | 〇 | × | × | 〇 | × | 2
16397 | udonman | × | 〇 | × | × | 〇 | × | -1
16440 | online_user | × | 〇 | × | × | 〇 | × | -1
16441 | batch_user | × | 〇 | × | × | 〇 | × | -1
16442 | prjadmin | × | 〇 | × | × | 〇 | × | -1
16827 | kawa | × | 〇 | × | × | 〇 | × | -1
16828 | yama | × | 〇 | × | × | 〇 | × | -1
(8 rows)
myposdb=#