Question & Answer
Question
CREATE DATABASE コマンドに RESTRICTIVE オプションを付与し、制限つきデータベースを作成しました。
このデータベースで特定のユーザーに対して、IMPORT および EXPORT を実行するために必要な権限を付与する方法を教えてください。
このデータベースで特定のユーザーに対して、IMPORT および EXPORT を実行するために必要な権限を付与する方法を教えてください。
Cause
RESTRICTIVE オプションを指定してデータベースを作成すると、特殊グループ PUBLIC に対する権限や特権は付与されません。
このため、通常は PUBLIC に対して付与されている個々の特権を個別に付与する必要があります。
このため、通常は PUBLIC に対して付与されている個々の特権を個別に付与する必要があります。
CREATE DATABASE コマンド
RESTRICTIVE
RESTRICTIVE パラメーターを使用すると、restrict_access データベース構成パラメーターが YES に設定されるため、特権や権限が自動的に PUBLIC に付与されることがなくなります。
RESTRICTIVE
RESTRICTIVE パラメーターを使用すると、restrict_access データベース構成パラメーターが YES に設定されるため、特権や権限が自動的に PUBLIC に付与されることがなくなります。
特定の表の参照権限を付与する方法については、以下の Technote を参照してください。
なお、この文書は EXPORT/IMPORT を行うユーザーは、すでに表への参照特権を持っており、コマンド行プロセッサーのパッケージ (db2ubind.lst に含まれる) の実行特権を持っているものと仮定しています。
それぞれの特権の付与方法は上の Technote を参照してください。
Answer
IMPORT および EXPORT の実行には SQLU* パッケージが使用されますので、IMPORT および EXPORT を実行するユーザーに対して、これらのパッケージが依存するオブジェクト (システム・カタログ表やビュー、表関数など) に対する SELECT 特権や EXECUTE 特権を付与する必要があります。
パッケージが依存するオブジェクトは Db2 のバージョンやフィックスパックレベルによって変わる可能性があるため、以下の SQL を実行してご確認ください。
db2 "select char(bschema,30)schame,char(bname,30)name,btype from syscat.packagedep where pkgname like 'SQLU%'and btype in ('T','V','F')"
実行例
db2 "select char(bschema,30)schame,char(bname,30)name,btype from syscat.packagedep where pkgname like 'SQLU%'and btype in ('T','V','F')"
SCHAME NAME BTYPE
------------------------------ ------------------------------ -----
SYSIBM SYSTABCONST T
SYSCAT CONSTDEP V
SYSIBM SYSMODULES T
SYSIBM SYSCONSTDEP T
SYSIBM SYSDUMMY1 V
SYSPROC BASE_TABLE F
SYSIBM SYSAUDITPOLICIES T
SYSIBM SYSCOLLATIONS T
SYSIBM SYSTABLES T
SYSIBM SYSTABLES T
SYSCAT TABLESPACES V
SYSIBM SYSSTOGROUPS T
SYSIBM SYSTABLESPACES T
SYSIBM SYSCOLUMNS T
14 record(s) selected.
実行結果のうち、BTYPE が T および V のものについては SELECT 特権、F のものについては EXECUTE 特権を付与します。
EXPORTiIMPORT はパッケージに登録された静的 SQL だけでなく、動的 SQL を実行することもあります。このため、以下の表およびビューへの SELECT 特権も付与してください。
SYSIBM.INDEXCOLUSE
SYSCAT.INDEXES
SYSCAT.COLUMNS
特権を付与する方法
db2 grant select on table <表名> to user <ユーザー名>
db2 grant execute on function <関数名> to user <ユーザー名>
実行例
db2inst1 ユーザーに対して SYSIBM.SYSTABLES 表の SELECT 特権を付与するには、以下の SQL を実行します。
db2 "GRANT SELECT ON TABLE SYSIBM.SQLTABLES TO USER DB2INST1"
db2inst1 ユーザーに対して SYSPROC.BASE_TABLE 表関数の EXECUTE 特権を付与するには、以下の SQL を実行します。
db2 "GRANT EXECUTE ON FUNCTION SYSPROC.BASE_TABLE(VARCHAR(),VARCHAR()) TO USER DB2INST1"
[Db2] 制限つきデータベースで特定の表の参照権限を付与する方法
[Db2] 読み取り専用のユーザーを定義する方法
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート
[Db2] 読み取り専用のユーザーを定義する方法
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート
[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PkfAAE","label":"Data Movement"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"},{"code":"PF055","label":"zLinux"}],"Version":"10.1.0;10.5.0;11.1.0;11.5.0;9.7.0;9.8.0"}]
Was this topic helpful?
Document Information
Modified date:
23 August 2023
UID
ibm16495335