回答:
読み取り専用ユーザーを作成するスクリプト:
CREATE ROLE Read_Only_User WITH LOGIN PASSWORD 'Test1234'
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity';
この読み取り専用ユーザーに権限を割り当てます:
GRANT CONNECT ON DATABASE YourDatabaseName TO Read_Only_User;
GRANT USAGE ON SCHEMA public TO Read_Only_User;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO Read_Only_User;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO Read_Only_User;
オペレーティングシステムで新しいユーザーを作成する必要はありません。ちょうど発行:
CREATE USER newusername
psql(またはpgadmin、または任意のツール)では、新しいユーザーが作成されます。このユーザーが持つアクセス権は、テーブルの設定内容によって異なります。ただし、デフォルトでは、どのテーブルに対する権限もないため、これを許可する必要があります。パブリックグループへのアクセス許可が既に付与されている場合、ユーザーには最初からアクセス許可が付与されます。