PostgreSQL

PostgreSQL データベースを作成する

データベースの作成

ownerを指定する場合既存ユーザであること。ownerパラメータを省略した場合create文発行ユーザがオーナになり、tablespaceパラメータを省略した場合はデフォルト表領域にななります。

create database udondb with owner=udonman tablespace=spc01
;
データベースの作成例
postgres=# create database udondb with owner=udonman tablespace=spc01
postgres-# ;
CREATE DATABASE
postgres=# select d.datname,u.usename as owner,pg_encoding_to_char(d.encoding),s.spcname
postgres-# ,pg_tablespace_location(d.dattablespace) as "Location"
postgres-# ,pg_catalog.array_to_string(d.datacl, E'\n') AS "Access privileges"
postgres-# from pg_database d inner join pg_user u on d.datdba = u.usesysid
postgres-# left outer join pg_tablespace s on d.dattablespace = s.oid
postgres-# order by d.oid;
  datname  |  owner   | pg_encoding_to_char |  spcname   |          Location           |   Access privileges
-----------+----------+---------------------+------------+-----------------------------+-----------------------
 template1 | postgres | UTF8                | pg_default |                             | =c/postgres          +
           |          |                     |            |                             | postgres=CTc/postgres
 template0 | postgres | UTF8                | pg_default |                             | =c/postgres          +
           |          |                     |            |                             | postgres=CTc/postgres
 postgres  | postgres | UTF8                | pg_default |                             |
 smtdb01   | apuser   | UTF8                | pg_default |                             |
 udondb    | udonman  | UTF8                | spc01      | /var/lib/pgsql/14/tbs/spc01 |
(5 行)


postgres=#

必要な権限

必要な権限を付与

データベースを作成するユーザ(ロール)へgrant文を使いたくなりますがそうではありません。alter userにて権限付与となります。

alter user udonman createdb
;
create database権限を外す
alter user udonman nocreatedb
;

データベース一覧

スポンサーリンク
コピペで使う