PostgreSQL создание удаление пользователей
Создание пользователя
CREATE USER name [ [ WITH ] option [ ... ] ]
option (основные атрибуты)
SUPERUSER | NOSUPERUSER - определяет наличие/отсутствие прав суперпользователя
| CREATEDB | NOCREATEDB - если указано createdb, пользователь сможет создавать новые базы данных.
| CREATEROLE | NOCREATEROLE - CREATEROLE возможность создавать новые роли.
| INHERIT | NOINHERIT - атрибут позволяет пользователю использовать все привилегии базы данных.
| LOGIN | NOLOGIN - атрибут определяет использование логина для сеанса авторизации.
| REPLICATION | NOREPLICATION - позволяет пользователю инициировать потоковую репликацию.
| CONNECTION LIMIT connlimit - число одновременных подключений. По умолчанию ограничений нет.
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' - указание пароля пользователя.
| VALID UNTIL 'timestamp' - указать дату окончания действия пароля.
Пример
# su - postgres
$ psql db_name
db_name - имя базы в которой будем создавать пользователя
# create user example_user1 with password 'example';
CREATE ROLE
Проверка
# \du
List of roles
Role name | Attributes | Member of
---------------+------------------------------------------------+-----------
example_user1 | | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Удаление пользователя
# drop user example_user1;
DROP ROLE
# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication | {}
PostgreSQL создание удаление табличного пространства
Создание табличного пространства
CREATE TABLESPACE tablespace_name [ OWNER user_name ] LOCATION 'directory'
tablespace_name - имя создаваемого табличного пространства. Имя не может начинаться с pg_ , такие имена зарезервированы для системных табличных пространств.
user_name - имя пользователя владельца.
directory - каталог, который будет использоваться для табличного пространства.
Примеры
Создание табличного пространства db1_ts1 в директории /datafiles/db1/db1_ts1/ владельцем которого является пользователь adm1.
db1=# create tablespace db1_ts1 owner adm1 location '/datafiles/db1/db1_ts1/';
CREATE TABLESPACE
db1=# create tablespace db1_ts2 location '/datafiles/db1/db1_ts2/';
CREATE TABLESPACE
Удаление табличного пространства
DROP TABLESPACE [ IF EXISTS ] name
IF EXISTS - если указанное при удалении пространство отсутствует, то при использовании данной опции, вместо ошибки получим уведомление.
Примеры
db1=# drop tablespace if exists z;
NOTICE: tablespace "z" does not exist, skipping
DROP TABLESPACE
db1=# drop tablespace z;
ERROR: tablespace "z" does not exist
db1=# drop tablespace data1;
DROP TABLESPACE