5

Vertica データベースに特定のシステム テーブル (projections、projection_storage、およびビュー) を表示できるユーザーを設定しようとしていますが、このユーザーを dbadmin にしたくありません。これらのテーブルに対する書き込み権限。GRANT ステートメントを使用して、通常のユーザーにこれらのテーブルへのアクセスを許可しようとしましたが、うまくいかないようです。各ユーザーは、それらのテーブルで自分のレコードのみを表示できます。私が説明したようにユーザーを設定する方法はありますか、それともこのユーザーを dbadmin にする必要がありますか?

私たちのユースケースは、データベースに存在するスキーマのリストを取得し、各スキーマを反復処理して、情報を収集して 1 つの中央の場所に保存できるユーザーが必要な場合です。ユーザーが個々のスキーマでの使用を許可されている場合、それらのスキーマのリストを取得できますが、projection_storage および views テーブル内の必要なレコードにアクセスすることはできません。

ありがとうございました!

4

5 に答える 5

3

ユーザーまたはロールにスキーマを付与するだけでは、ユーザーがそのプロジェクションを表USAGEに表示するのに十分ではありません。projection_storageユーザーまたはロールがSELECTテーブルへのアクセス権を持っている場合、それらのテーブルの射影を で表示できますprojection_storage。私は Vertica 7.1 をSELECT使用していますが、個々のユーザー ID に許可を与えるのではなく、役割だけに許可を与えることで、プロジェクション レコードを表示できました。

ユーザーがテーブルにアクセスする必要はないが、何らかのレポート目的でスキーマ内のテーブルを一覧表示する必要がある場合、1 つのオプションは、コンテンツを定期的にprojection_storage別のテーブルにダンプし、このテーブルに対する適切な権限をユーザーに付与することです。

于 2014-11-13T21:32:28.573 に答える
2

メンテナンスのために、データベースロールを作成する必要があります!! そして、これらのロールへのアクセス権をユーザーに付与します。そうでなければ、メンテナンスはあなたにとって地獄になります!!

于 2013-05-20T22:19:57.907 に答える
1

通常は、ユーザーにスキーマの USAGE を与えるだけです。そして、「GRANT SELECT on to ;」

それらのテーブルに対する INSERT 権限はありますか?

于 2012-02-29T19:03:11.033 に答える
1

テーブルのロールに選択アクセスを許可しても、projection_storage などのメタデータ テーブルへの完全なアクセスは許可されません。これはバグのようです。完全なアクセス権を取得するには、個々のユーザー ID に select を付与する必要があります。

于 2013-06-24T11:11:34.790 に答える
0

以下の手順に従って、スキーマに対する選択権限を持つユーザーを作成できます。これに例を示します。私のテストデータベースには、テーブル「student_table」を持つスキーマ「sid」があります。

1) Login as a admin on your database .
    [dbadmin@localhost bin]$  vsql -u
    User name: dbadmin
    Password: 

2) Create the user with a password 

    dbadmin=> create user test identified by 'R';
    CREATE USER


3) Give the newly created user a Grant for the usage on the database.
    dbadmin=> Grant ALL on database vertica to test;
    GRANT PRIVILEGE

4) You can then grant the user the Usage to the schema 
    dbadmin=> Grant Usage on Schema sid to test;
    GRANT PRIVILEGE

5) Finally provide the select grant to the user on the table .
    dbadmin=> Grant select on sid.student_table to test ;
    GRANT PRIVILEGE
    dbadmin=> \q
6) Login with the new user 'test' , You will be able to access both projection storage and 
    your table sid.student_table

    [dbadmin@localhost bin]$ vsql -u
    vsql: Warning: The -u option is deprecated. Use -U.
    User name: test
    Password: 
    Welcome to vsql, the Vertica Analytic Database interactive terminal.

    test=> select * From sid.student_table;
     Student_ID | Last_name | First_Name | Class_Code |      Grade_pt      
    ------------+-----------+------------+------------+--------------------
           9999 | T_        | S%         | PG         | 98.700000000000000
    (1 row)

    test=> select * From projection_storage;
    -[ RECORD 1 ]-----------+-----------------------------------------
    node_name               | v_vertica_node0001
    projection_id           | 45035996273836526
    projection_name         | Student_Table_DBD_1_rep_tet1_v1_node0001
    projection_schema       | sid
    projection_column_count | 6
    row_count               | 9
    used_bytes              | 375
    wos_row_count           | 0
    wos_used_bytes          | 0
    ros_row_count           | 9
    ros_used_bytes          | 375
    ros_count               | 1
    anchor_table_name       | Student_Table
    anchor_table_schema     | sid
    anchor_table_id         | 45035996273756612
于 2016-12-07T04:53:35.193 に答える