ユーザーの DB2 SYSADM または SYSCTRL 許可を確認する方法。
データベースを作成/ドロップするには、DB2 権限を使用してユーザー/パスワードを確認する必要があります。これに対する特定のコマンドはありますか?
ユーザーがデータベースを作成および削除する権限を持っているかどうかを示すコマンドを使用して、ユーザー/パスワードを確認する必要があります (データベースの作成コマンドを実行する前に検証を試みることを意味します)。
db2 connect
db2 get authorizations
これを試して; 以下のクエリで参照されているビューで ID に SELECT があることを意味します。
select 1 from
sysibmadm.dbmcfg t1 join
sysibmadm.authorizationids t2 on t1.value=t2.authid
where t1.name='sysadm_group' fetch first row only
with ur
上記のクエリの SQL0551 は、接続されたユーザーが SYSADM を持っていないことも示しています。
これは、UNIXシェルで行う方法です.Javaの同等物に適応するのは難しくありません。
createdb=$(db2 get authorizations|egrep 'SYSADM|SYSCTRL' | grep -c ' = YES')
if [[ $createdb ]]; then
echo 'Do it'
fi
"GET AUTHORIZATIONS"
コマンドはバージョン 9.7 で廃止されました。
"AUTH_LIST_AUTHORITIES_FOR_AUTHID"
代わりにテーブル関数を使用する必要があります。
db2 connect
db2 SELECT VARCHAR(AUTHORITY, 30) AS AUTHORITY,
D_USER,
D_GROUP,
D_PUBLIC,
ROLE_USER,
ROLE_GROUP,
ROLE_PUBLIC,
D_ROLE
FROM TABLE(SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID('ALICE', 'U'))
WHERE AUTHORITY = 'SYSADM' OR AUTHORITY = 'DBADM'