このチュートリアルでは、PostgreSQL forRedashで読み取り専用ユーザーを設定する方法を示します。
ドキュメントで最初に目にするのは、読み取り専用ユーザー向けにデータソースを構成するためのアドバイスです。データの視覚化のためにRedashを意味したため、これをお勧めします。INSERT、UPDATE、またはDELETEアクションに基づいて構築されていません。
Redashは40を超えるデータソースと無制限の数のJSONベースのAPIをサポートしているため、アプリケーションは、ユーザーがSELECT以外のクエリを実行するのを直接防ぐことはできません。これにより、データベースレベルで読み取り専用ユーザーを構成することにより、Redashユーザーによる悪意のあるDDLステートメントの実行から身を守ることができます。
PostgreSQLは最も人気のあるデータソースの1つです。この記事では、AmazonRedshiftやRDSなどのPostgresデータソースへの読み取り専用アクセスを構成する例を示します。
この記事は主に、優れた投稿AmazonAWSブログアクセス許可Postgresに基づいて書かれています。
概要概要
始める前に、app-adminという名前のユーザーが所有するmyappという新しいデータベーススキーマを作成しました。このスキーマには、ダミーデータで満たされた従業員、ジョブ、および顧客のテーブルが含まれています。私はこれらの手順に従いました:
- myapp-readonlyという名前の新しいロールを作成しました。
- SELECT Employees Jobs. SELECT customers, .
- redash myapp-readonly.
- Redash redash.
, , Amazon PUBLIC :
public . , , , - public .
. , myapp-readonly . . ( , Redash ).
1.
CREATE ROLE myapp_readonly; GRANT CONNECT ON DATABASE defaultdb TO myapp_readonly; GRANT USAGE ON SCHEMA myapp TO myapp_readonly;
Amazon. GRANT USAGE , . PostgreSQL:
[USAGE] , ( , ). , «» .
2.
GRANT SELECT ON TABLE "myapp"."employees" TO myapp_readonly; GRANT SELECT ON TABLE "myapp"."jobs" TO myapp_readonly; GRANT SELECT (id, name) ON TABLE myapp.customers TO myapp_readonly;
employee jobs .
myapp_readonly . . . , Redash.
, Redash . *SELECT FROM customers**, . .
3. Redash .
CREATE USER redash WITH PASSWORD 'secret'; GRANT myapp_readonly TO redash;
redash — , Redash. secret .
4. Postgres
Redash . , , .

, , .
SELECT * FROM myapp.employees

, .
INSERT INTO myapp.employees (name) VALUES ('Hal')

. myapp_readonly INSERTS. Redash INSERT!
, customers:
SELECT * FROM myapp.customers;

読み取り専用ロールは特定の列にしかアクセスできないため、アクセス許可エラーを返します。
SELECT id, name FROM myapp.customers;

ユーザーに読み取り専用の列のみを要求したため、クライアントの完全なリストを返します。
結論
データは最も重要なビジネス資産の1つです。Redashは、データベースを保護するためにデータベースのセキュリティ対策を使用することをお勧めします。これらの手順を実行することで、コンプライアンスエラーや詮索好きな目から機密情報を安全に保ちながら、内部ユーザーが有用な情報を準備できるようになります。