НачатьНачать бесплатно

Реализация контроля доступа для команды

В этой главе вы узнали, как управлять доступом к базам данных. Теперь перейдём к финальному упражнению курса. Вам предстоит создать новую схему и таблицу для хранения данных, которые будут предоставлены специалистам по данным в вашей команде. Даже если члены команды ответственны, от ошибок никто не застрахован. Поэтому следует предоставлять им ровно столько прав на работу с базой данных, сколько необходимо для выполнения их задач. Эти пользователи получат доступ к данным о заявках на кредит, которые не были одобрены.

  • Будет создана схема 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 ___;
Редактировать и запускать код