0

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

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

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

4

4 回答 4

2
db2 connect
db2 get authorizations
于 2012-05-01T09:05:45.990 回答
1

这就是我在 unix shell 中的做法,适应 java 等价物应该不难;

createdb=$(db2 get authorizations|egrep 'SYSADM|SYSCTRL' | grep -c ' = YES')
if [[ $createdb ]]; then
   echo 'Do it'
fi
于 2012-08-08T19:58:06.800 回答
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。

于 2012-09-27T20:46:00.360 回答
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 命令已停止

于 2018-10-26T09:42:12.537 回答