次のコマンドを使用してPostgreSQLサーバーインスタンスに接続します。
sudo -u postgres psql
Chartioに接続するデータベースを選択します:
\c databasename;
Chartio読み取り専用ユーザーの新しい役割を作成します:
CREATE ROLE chartio_read_only_user LOGIN PASSWORD 'secure_password';
新しいユーザーがデータベースに接続するために必要な権限を付与します:
GRANT CONNECT ON DATABASE exampledb TO chartio_read_only_user;
GRANT USAGE ON SCHEMA public TO chartio_read_only_user;
次のコマンドを実行して、新しいユーザーにselect
アクセスを許可するクエリを生成します。
SELECT 'GRANT SELECT ON '||schemaname||'."'||tablename||'" TO chartio_read_only_user;' FROM pg_tables WHERE schemaname IN ('public') ORDER BY schemaname, tablename;
次のようなGRANTステートメントのリストが表示されます。
クエリによって生成されたGRANTステートメントをコピーして、ターミナルウィンドウに貼り付けます。テーブルのサブセットへのアクセスを制限するには、対応するテーブルに対してのみGRANTステートメントを実行します。特定の列へのアクセスを制限するには、スキーマを使用してPostgreSQLアクセスを制限する方法をお読みください。
GRANT SELECT ON public."album" TO chartio_read_only_user;
GRANT SELECT ON public."artist" TO chartio_read_only_user;
GRANT SELECT ON public."customer" TO chartio_read_only_user;
GRANT SELECT ON public."employee" TO chartio_read_only_user;
GRANT SELECT ON public."genre" TO chartio_read_only_user;
GRANT SELECT ON public."invoice" TO chartio_read_only_user;
GRANT SELECT ON public."invoiceline" TO chartio_read_only_user;
GRANT SELECT ON public."mediatype" TO chartio_read_only_user;
GRANT SELECT ON public."playlist" TO chartio_read_only_user;
GRANT SELECT ON public."playlisttrack" TO chartio_read_only_user;
GRANT SELECT ON public."track" TO chartio_read_only_user;
これで、新しい読み取り専用ユーザーは、Chartioがデータベースに接続するために必要な権限を取得しました。