1

アクセス権の付与を簡単にするために、新しい役割を設定しようとしています。選択したユーザーに対して、スキーマの下ですべてのテーブル (新しく作成されたテーブルに自動的にアクセスできるようにする必要があります) を選択する簡単な方法があるかどうか疑問に思っていました。同じものに対して次のクエリを実行しました。しかし、それでも私のユーザーは特定のテーブルにアクセスできません。

CREATE ROLE myrole;

GRANT SELECT ON myschema.mytable TO myrole;

GRANT usage ON schema myschema TO myrole;

CREATE USER mytest1 identified BY '***';

GRANT myrole TO mytest1;

この後、mytest1 ユーザーでログインして myschema.mytable で select を実行しようとすると、スキーマの使用をユーザーに許可するように求められます。スキーマの使用をユーザーに直接許可した後、そのテーブルに対する権限が拒否されて失敗します。

同じように助けてください。私は vertica 5.0 で実行しています

更新: ロールの効果を発生させるには、そのロールをデフォルトにするか、そのロールをユーザーセッションのデフォルトとして明示的に設定する必要があることもわかりました。

ALTER USER mytest1 DEFAULT ROLE myrole;

それでも、特定のユーザーがスキーマの下にあるすべてのテーブルにアクセスできるようにする方法についての私の別の質問は残っています。

4

1 に答える 1

1

Vertica SQL Reference Manual.pdf (page 725) に従って (ドキュメント バージョン 5.0 - ページ番号について)

GRANT (Schema)
...
USAGE
Allows the user  access to the objects contained  within the 
schema. This allows the user to look up objects within the 
schema. Note that the user must also be granted access to the
individual objects. See the GRANT TABLE (page 727) ... .

またthe user must also be granted access to the individual objectsする必要があることを意味しますGRANT table

私が使用する 2 つはGRANT SELECTGRANT REFERENCESユーザーがクエリを実行し、クエリで (参照) テーブルを結合できるようにするものです。

例:

GRANT SELECT ON TABLE [schema].[Table1] TO myUser;
GRANT SELECT ON TABLE [schema].[Table2] TO myUser;
GRANT REFERENCES ON TABLE [schema].[Table1] TO myUser;
GRANT REFERENCES ON TABLE [schema].[Table2] TO myUser;
...

6.0 ドキュメント リファレンスGRANT SCHEMA(808 ページ) およびGRANT TABLE(813 ページ)。

于 2012-08-27T21:48:55.403 に答える