Amazon Redshiftで少し変な状況があります。スキーマXのすべてのテーブルで権限選択を持っているユーザーXがいますが、新しいテーブルが作成されると、この権限は新しいテーブルに適用されないようです。これは正常な動作ですか?はいの場合、スキーマレベルの許可が維持されるようにそれをどのように処理しますか。ありがとうございました。
Redshiftでは、テーブルとビューは親スキーマの権限を自動的に継承しません。新しく作成したテーブルには、それらを作成したユーザーとスーパーユーザーだけがアクセスできます。
Redshiftの最近のパッチでは、この問題に対処するデフォルトの権限を付与する新しい機能が実装されています。
次のコードスニペットは、sales_adminグループにsalesスキーマ内のすべての将来のテーブルに対してのみ選択権限を付与します。これをスキーマ内の既存のテーブルに適用する場合は、2番目の許可ステートメントと組み合わせる必要があります。
alter default privileges in schema sales grant select on tables to group sales_admin;
次のコマンドをスーパーユーザー(マスター)として実行します。
alter default privileges
for user staging_user
in schema staging
grant select on tables
to reporting_user;
reporting_userは、スキーマステージングでstaging_userによって作成された将来のすべてのテーブルからデータを選択できるようになります。
これは正常な動作です。デフォルトでは、オブジェクトの所有者/スーパーユーザーのみがオブジェクトを使用する権限を持っています。
http://docs.aws.Amazon.com/redshift/latest/dg/r_Privileges.html
grant
コマンドをcreate table
ステートメントに追加して、ユーザーに必要な権限を付与できます。