DB2データベースに、特定のスキーマのすべてのテーブルとビューに対する選択権限を付与したいユーザーがいます。1つのSQLステートメントとしてそれを行う方法について何か考えはありますか?
質問する
16348 次
1 に答える
7
特定のユーザーにselectを付与するには、特定のスキーマの各テーブルとビューの文を「生成」する必要があります。次のようなクエリを使用して、CLPを介してそれを行うことができます。
db2 -x "select 'grant select on table ' || rtrim(tabschema) || '.' || rtrim(tabname) || ' to user JOHN_DOE' from syscat.tables where tabschema like 'FOO%' and (type = 'T' or type = 'V')" | db2 +p -tv
このコマンドラインは、FOOで始まるスキーマのすべてのテーブル(T)とビュー(V)に対してユーザーJOHN_DOEの許可を生成します。
テーブルが多い場合、出力は非常に大きくなり、内部バッファがいっぱいになります。少数のテーブルセットの許可を生成して、コマンドを再発行します。
何を実行するかわからない場合は、最後の部分(| db2 + p -tv)なしで前のコマンドを発行します。これにより、コマンドが標準出力に書き込まれます。ただし、この部分は生成された出力を実行するため、最も重要です。
詳細については、InfoCenterまたは私のブログhttp://angocadb2.blogspot.com/2011/12/ejecutar-la-salida-de-un-query-en-clp.html(スペイン語)を確認してください。
于 2012-09-22T04:04:09.467 に答える