Vasulio-crtVasulio-crt
FoxelyssFoxelyss
Время чтения: 2 min
Изменено:18.09.2026, 19:57:57

Database, Schema, Role

База данных — контейнер, в котором находятся схемы, таблицы, функции и т. д.

Общий вид: create database Имя Оператор Оператор...

Пример: create database wow_test

Операторы:

  1. owner "role|user" - владелец БД
  2. template Имя_шаблона — база создаётся по шаблону (по умолчанию template1).
  3. encoding = 'utf8' - установка кодировки символов в БД (дефолт utf8)
  4. lc_collate = 'ru_RU.utf-8 - определяет локальную сортировку
  5. lc_ctype = 'ru_RU.utf-8' - сравнение символов
  6. tablespace Имя - указывает место хранения файлов
  7. connection limit N — N (число), ограничение на количество одновременных подключений пользователей.

Пример: create database VAS_1 owner vasulio

schema

schema — контейнер внутри БД, в котором создаются таблицы, функции и т. д.

Схема позволяет структурировать данные, доступ и конфликты имён. По дефолту создаётся схема public.

Общий вид: create schema имя_схемы

Пример: create schema Cofe

Создании схемы с владельцем

Общий вид: create schema Имя_схемы authorization Имя_польз|Имя_роли

Пример: create schema Cofe authorization vasulio

Если у схемы объявлен владелец, то только он или суперпользователь могут вносить в неё изменения.

Внутри 1 схемы мы можем вызывать другую схему и таблицы из неё

Общий вид: ИНДФ-С.ИДТ

Пример:

create table Cofe.cheсk(id int, summ int)
select * from Cofe.cheсk

Удаление schema

Общий вид: drop schema ИНДФ

Пример: drop schema Cofe

Операторы:

  • cascade - Удаляет схему и всё что в ней есть
  • restrict - Удаляет только пустые схемы

Примеры:

drop schema Cofe2 restrict
drop schema Cofe cascade

Role

Роль — универсальное понятие, которое может быть и пользователем, и группой.

У роли есть:

  1. Имя
  2. Пароль
  3. Права доступа

Роли могут наследовать друг друга

Пользователи: user — роль с возможностью login.

Общий вид: create role ИМЯ оператор ...

Операторы при создании ролей:

  1. superuser | nosuperuser — объявление того, что роль будет суперпользователем.
  2. createdb | nocreatedb - разрешение на создание бд
  3. createrole | nocreaterole - разрешение на создание ролей
  4. inherit | noinherit - может ли наследовать от других ролей
  5. login | nologin — позволяет авторизоваться роли как пользователю.
  6. replication | noreplication - может ли делать репликацию
  7. bypassrls | nobypassrls - будет ли роль игнорировать все политики защиты строк
  8. connection limit N - сколько можно будет сделать одновременных подключений
  9. password 'пароль' - задать роле пароль
  10. encrypted - включения шифрования
  11. valid until 'даты' - роль существует до определенной даты
  12. in role Имя_роли - автоматически зачисление роли
  13. role Имя_роли - делает роль группой ролей
  14. admin Имя_роли - включает роль в группу админов

Изменений и удаление role

-- Общий вид
alter role
drop role

-- Пример
create role gr632_t1
create role gr632_t2 password 'QWEasd123'