如何检查用户的DB2 SYSADM或SYSCTRL授权

时间:2012-05-01 08:40:25

标签: java db2

如何检查用户的DB2 SYSADM或SYSCTRL授权。

我需要通过DB2权限验证用户/密码来创建/删除数据库。对此有什么具体的命令吗?

我需要使用一个命令来验证用户/密码,该命令告诉用户是否有权创建和删除数据库(意味着尝试在触发数据库创建命令之前进行验证)。

4 个答案:

答案 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'

链接:GET AUTHORIZATIONS command has been discontinued