チーム向けのアクセス制御を実装する
この章では、データベースへのアクセスを制御する方法を学びました。いよいよコース最後の演習です。ここでは、チームのデータサイエンティストに提供するデータを保持するための新しいスキーマとテーブルを作成します。チームメンバーは責任を持って作業しますが、事故は起こり得ます。業務に必要な範囲に限って権限を与えるようにしましょう。これらのメンバーは、未承認のローンに関するデータへアクセスできるようにします。
- スキーマ
analysisを作成します。 - 新しいスキーマ内にテーブル
unapproved_loanを定義します。 - ユーザー
data_scientistを作成します。 - このユーザーは新しいテーブルからの読み取りのみに制限します。
この演習では、データベースのアクセス制御の基本を復習します。
この演習はコースの一部です
PostgreSQL データベースの作成
演習の手順
- 新しいテーブルを保持するため、
analysisという名前の新しいスキーマを作成します。 analysisスキーマの「内部」に、新しいテーブルunapproved_loanを作成し、PRIMARY KEY(id)、FOREIGN KEY(loan_id。loan テーブルのidキーを参照)、およびローンが拒否された理由を表す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 ___;