LINUX.ORG.RU

Сообщения Dm1Tr0N

 

Помогите с ролями в PostgreSQL

Форум — General
Создайте новую базу данных и две роли "gr606_midvl_writter","gr606_midvl_reader".

     * Для роли «public» отзовите все привилегии на схему «public», выдайте "gr606_midvl_writter" привилегии «USAGE» и «CREATE», для роли "gr606_midvl_reader" – только «USAGE». 

     * Сделайте так, чтобы "gr606_midvl_reader" получил доступ на чтение к таблицам, принадлежащим  "gr606_midvl_writter" в схеме «public».

     * Создайте пользователя "gr606_midvl_writter_1" в группе "gr606_midvl_writter" и "gr606_midvl_reader_1" в группе "gr606_midvl_reader".

     * Под  пользователем "gr606_midvl_writter_1" создайте объект – таблицу.

     * Продемонстрируйте, что "gr606_midvl_reader_1" может только просматривать таблицу, а "gr606_midvl_writter_1" имеет полный доступ к таблице.
Можете поделится чисто скриптом сие чуда
Я бы сделал сам но в роль public не могу найти

 , ,

Dm1Tr0N
()

Помогите с запросом на PostgreSQL

Форум — General

База данных

create table books(
id integer GENERATED BY DEFAULT AS IDENTITY PRIMARY key,
title text
);

create table authors(
id integer GENERATED BY DEFAULT AS IDENTITY PRIMARY key,
last_name text,
first_name text,
second_name text
);

create table authorship(
book_id integer references books(id),
author_id integer references authors(id),
seq_num integer
);

insert into books
values
(1, 'Сказка о царе Салтане'),
(2, 'Муму'),
(3, 'Трудно быть богом'),
(4, 'Война и мир'),
(5, 'Путешествие в некоторые удаленные страны мира в четырех частях: сочинение Лемуэля Гулливера, сначала хирурга, а затем капитана нескольких кораблей'),
(6, 'Хрестоматия');

insert into authors
values
(1, 'Пушкин', 'Александр', 'Сергеевич'),
(2, 'Тургенев', 'Иван', 'Сергеевич'),
(3, 'Стругацкий', 'Борис', 'Натанович'),
(4, 'Стругацкий', 'Аркадий', 'Натанович'),
(5, 'Толстой', 'Лев', 'Николаевич'),
(6, 'Свифт', 'Джонатан', '');

insert into authorship
values
(1,1,1),
(2,2,1),
(3,3,2),
(3,4,1),
(4,5,1),
(5,6,1),
(6,1,1),
(6,5,2),
(6,2,3);

Задание

Выполнить следующие задания, скрипт запросов и результаты выполнения занесите в отчет:

·   Реализуйте скрипт, позволяющий удалить все пользовательские объекты с базы данных. Код запроса, результат (до и после) отобразить в отчете

 · Создайте функцию имя книги(book_name) для формирования названия книги. Функция принимает два параметра (идентификатор    книги(id) и заголовок(tittle)) и возвращает строку, составленную из заголовка и списка авторов в порядке seq_num. Имя каждого

автора формируется функций author_name. Создайте представление, в котором указывается идентификатор книги, вызов созданной функции (Исходные данные находятся в файле: «book_shop.txt» и «log_schema_book_shop.png»).

 · Измените созданную функцию: если у книги больше двух авторов, то в названии указываются только первые два и в конце добавляется "и д.р.". Пример:

           Выводится: "Хрестоматия. Пушкин А. С., Толстой Л. Н., Тургенев И. С."
           Ожидается: Хрестоматия. Пушкин А. С., Толстой Л. Н. и др.

 ,

Dm1Tr0N
()

RSS подписка на новые темы