Database, Schema, Role
База данных — контейнер, в котором находятся схемы, таблицы, функции и т. д.
Общий вид:
create database Имя Оператор Оператор...
Пример:
create database wow_test
Операторы:
owner "role|user"- владелец БДtemplate Имя_шаблона— база создаётся по шаблону (по умолчанию template1).encoding = 'utf8'- установка кодировки символов в БД (дефолт utf8)lc_collate = 'ru_RU.utf-8- определяет локальную сортировкуlc_ctype = 'ru_RU.utf-8'- сравнение символовtablespace Имя- указывает место хранения файлов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
Роль — универсальное понятие, которое может быть и пользователем, и группой.
У роли есть:
- Имя
- Пароль
- Права доступа
Роли могут наследовать друг друга
Пользователи:
user — роль с возможностью login.
Общий вид:
create role ИМЯ оператор ...
Операторы при создании ролей:
superuser | nosuperuser— объявление того, что роль будет суперпользователем.createdb | nocreatedb- разрешение на создание бдcreaterole | nocreaterole- разрешение на создание ролейinherit | noinherit- может ли наследовать от других ролейlogin | nologin— позволяет авторизоваться роли как пользователю.replication | noreplication- может ли делать репликациюbypassrls | nobypassrls- будет ли роль игнорировать все политики защиты строкconnection limit N- сколько можно будет сделать одновременных подключенийpassword 'пароль'- задать роле парольencrypted- включения шифрованияvalid until 'даты'- роль существует до определенной датыin role Имя_роли- автоматически зачисление ролиrole Имя_роли- делает роль группой ролейadmin Имя_роли- включает роль в группу админов
Изменений и удаление role
-- Общий вид
alter role
drop role
-- Пример
create role gr632_t1
create role gr632_t2 password 'QWEasd123'