まず、データベースをIBM DB2 AIXからIBM DB2ウィンドウにエクスポートします。残念ながら、OSの問題により、BACKUPとRESTOREコマンドを使用できません。そのため、db2moveコマンドを使用する必要があります。
私は、エクスポートされたMYSCHEMAのからスキーマとテーブルのすべてをdbempのこのコマンドを使用してリモートIBM DB2 AIXでのデータベース:
db2move dbemp export -sn myschema
このコマンドを実行すると、dbuser1という名前のユーザーとしてログインしました。
現在のフォルダーにたくさんのファイルを生成します。IBM DB2 LUWがインストールされているローカルマシン(Windows)にファイルを取得します。
次に、ローカルマシンのIBM DB2で、IBM Data Studioを使用して、最初に既存のスキーマmyschemaを削除しました(ローカルdbempデータベースもありました)。
次に、次のコマンドを使用してファイルをインポートしました。
db2move dbemp import
スキーマとテーブルをローカルのdbempデータベースに正常にインポートします。
上記のアクションを実行したとき、ユーザーwinuser1としてログインしていました。
ローカルマシン(Windows)にもdbuser1という名前のローカルユーザーがいます。IBM Data Studioで、dbuser1ユーザーを使用してローカルdbempに接続する接続プロファイルを作成しました。myschemaスキーマとテーブルを参照できますが、テーブルのデータを参照できません(特権エラーが発生しました)。ユーザーwinuser1はテーブルのデータを参照できますが、開発のために、ユーザーdbuser1を使用してデータベースに接続する必要があります。
そのため、次のようにテーブルのユーザーに特権を付与できることがわかりました。
GRANT ALL ON myschema.table1 TO USER dbuser1
問題は、100個のテーブルがあることです。テーブルごとにその行を入力したくありません。残念ながら、次のようなワイルドカードソリューションはありません。
GRANT ALL ON myschema.* TO USER dbuser1 -- this doesn't work
したがって、問題は、スキーマ内のすべてのテーブルに対するすべての特権をユーザーにどのように付与するかということです。または、より良い代替ソリューションはありますか?多分からすべての権限をコピーしてwinuser1にdbuser1?
db2 grant dataaccess
作品。私は開発環境にいるので、すべてのスキーマにそれらを許可してもかまいません。