如何检查用户的DB2 SYSADM或SYSCTRL授权。
我需要通过DB2权限验证用户/密码来创建/删除数据库。对此有什么具体的命令吗?
我需要使用一个命令来验证用户/密码,该命令告诉用户是否有权创建和删除数据库(意味着尝试在触发数据库创建命令之前进行验证)。
答案 0 :(得分:2)
db2 connect
db2 get authorizations
答案 1 :(得分:1)
这是我从unix shell中做到的,不应该很难适应java等价物;
createdb=$(db2 get authorizations|egrep 'SYSADM|SYSCTRL' | grep -c ' = YES')
if [[ $createdb ]]; then
echo 'Do it'
fi
答案 2 :(得分:1)
试试这个;这意味着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。
答案 3 :(得分:0)
"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'