Реализация контроля доступа для команды
В этой главе вы узнали, как управлять доступом к базам данных. Теперь перейдём к финальному упражнению курса. Вам предстоит создать новую схему и таблицу для хранения данных, которые будут предоставлены специалистам по данным в вашей команде. Даже если члены команды ответственны, от ошибок никто не застрахован. Поэтому следует предоставлять им ровно столько прав на работу с базой данных, сколько необходимо для выполнения их задач. Эти пользователи получат доступ к данным о заявках на кредит, которые не были одобрены.
- Будет создана схема
analysis. - В новой схеме будет определена таблица
unapproved_loan. - Будет создан пользователь
data_scientist. - Пользователь получит права только на чтение из новой таблицы.
Это упражнение закрепит базовые навыки управления доступом к базе данных.
Это упражнение является частью курса
Создание баз данных PostgreSQL
Инструкции к упражнению
- Создайте новую схему с именем
analysis, в которой будет размещена наша новая таблица. - Создайте новую таблицу
unapproved_loanвнутри схемыanalysisс первичным ключомPRIMARY KEY(id), внешним ключомFOREIGN KEY(loan_id), ссылающимся на полеidтаблицы loan, и текстовым полемdescriptionтипаTEXT, описывающим причину отказа по заявке. - Добавьте пользователя с именем
data_scientistи паролемchangeme. - Ограничьте права пользователя до доступа только для чтения из таблицы
analysis.unapproved_loan.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
-- Create the new analysis schema
CREATE SCHEMA ___;
-- Create a table unapproved loan under the analysis schema
CREATE TABLE ___ (
id serial PRIMARY KEY,
loan_id INTEGER REFERENCES loan(id),
description ___ NOT NULL
);
-- Create 'data_scientist' user with password 'changeme'
___ USER ___ WITH ___ '___';
-- Give 'data_scientist' ability to use 'analysis' schema
GRANT ___ ON ___ ___ TO ___;
-- Grant read-only access to table for 'data_scientist' user
___ SELECT ON ___ TO ___;