web-dev-qa-db-ja.com

Amazon Redshiftの付与-ユーザーがスキーマ内のすべてのテーブルに対する権限を持っているにもかかわらず、新しいテーブルにアクセスできない

Amazon Redshiftで少し変な状況があります。スキーマXのすべてのテーブルで権限選択を持っているユーザーXがいますが、新しいテーブルが作成されると、この権限は新しいテーブルに適用されないようです。これは正常な動作ですか?はいの場合、スキーマレベルの許可が維持されるようにそれをどのように処理しますか。ありがとうございました。

16
elvikingo

Redshiftでは、テーブルとビューは親スキーマの権限を自動的に継承しません。新しく作成したテーブルには、それらを作成したユーザーとスーパーユーザーだけがアクセスできます。

Redshiftの最近のパッチでは、この問題に対処するデフォルトの権限を付与する新しい機能が実装されています。

デフォルトの権限を変更

次のコードスニペットは、sales_adminグループにsalesスキーマ内のすべての将来のテーブルに対してのみ選択権限を付与します。これをスキーマ内の既存のテーブルに適用する場合は、2番目の許可ステートメントと組み合わせる必要があります。

alter default privileges in schema sales grant select on tables to group sales_admin;
11
John

次のコマンドをスーパーユーザー(マスター)として実行します。

alter default privileges 
  for user staging_user 
  in schema staging 
  grant select on tables 
  to reporting_user;

reporting_userは、スキーマステージングでstaging_userによって作成された将来のすべてのテーブルからデータを選択できるようになります。

11
hibernado

これは正常な動作です。デフォルトでは、オブジェクトの所有者/スーパーユーザーのみがオブジェクトを使用する権限を持っています。

http://docs.aws.Amazon.com/redshift/latest/dg/r_Privileges.html

grantコマンドをcreate tableステートメントに追加して、ユーザーに必要な権限を付与できます。

0
vtuhtan