1. DBADM権限を与えるユーザーをzfedora上に作成する。
必要に応じてユーザーを作成します。今回はzfedora上にtestdbユーザーを作成しました。適宜パスワードも設定しておきます。
-bash-4.0# adduser testdb -bash-4.0# passwd testdb Changing password for user testdb. New password: Retype new password: passwd: all authentication tokens updated successfully.2. testdbユーザーにDBADM権限を与える。
インスタンスオーナー(db2inst1)でzfedoraにログインし、SQLのGRANT文でtestdbユーザーにDBADM権限を与えます。
[db2inst1@zfedora ~]$ db2 connect to sample Database Connection Information Database server = DB2/LINUXZ64 9.7.1 SQL authorization ID = DB2INST1 Local database alias = SAMPLE [db2inst1@zfedora ~]$ db2 "GRANT DBADM ON DATABASE TO USER testdb" DB20000I The SQL command completed successfully.3. x86 Linuxからzfedora上の"sample"データベースに接続する。
"testdb"ユーザーで"SAMPLE"データベースに接続します。
[hercules@ce01 ~]$ db2 connect to sample user testdb using YYYYYYYY データベース接続情報 データベース・サーバー = DB2/LINUXZ64 9.7.1 SQL 許可 ID = TESTDB ローカル・データベース別名 = SAMPLE4. "SAMPLE"データベース内のdepartmentテーブルにSELECTを発行してみる。
[hercules@ce01 ~]$ db2 "SELECT COUNT(*) FROM department" SQL0204N "TESTDB.DEPARTMENT" は未定義の名前です。 SQLSTATE=42704「"TESTDB.department"は未定義です」というエラーが表示されました。"TESTDB"が暗黙のスキーマ名として指定されているようです。"department"の代わりに、"DB2INST1.department"としてみると、SELECTの結果が戻されるようになりました。
[hercules@ce01 ~]$ db2 "SELECT COUNT(*) FROM DB2INST1.department" 1 ----------- 14 1 レコードが選択されました。カレントスキーマを"DB2INST1"に変更します。
[hercules@ce01 ~]$ db2 "SET CURRENT SCHEMA='DB2INST1'" DB20000I SQL コマンドが正常に完了しました。今度は、スキーマ名を指定しなくても"DB2INST1"スキーマのdepartmentテーブルに対するSELECTの結果が戻されました。
[hercules@ce01 ~]$ db2 "SELECT COUNT(*) FROM department" 1 ----------- 14 1 レコードが選択されました。今回は、インスタンスオーナー以外のユーザーにDBADM権限を与え、そのユーザーで"SAMPLE"データベースへの接続とSQLの発行を行ってみました。
0 件のコメント:
コメントを投稿