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

Java 如何为用户检查DB2 SYSADM或SYSCTRL授权,java,db2,Java,Db2,如何为用户检查DB2 SYSADM或SYSCTRL授权 我需要通过DB2权限来验证用户/密码,以创建/删除数据库。这有什么特别的命令吗 我需要用一个命令来验证用户/密码,该命令告诉用户是否有权创建和删除数据库(意味着在启动数据库创建命令之前尝试验证) 这就是我在unixshell中所做的,适应java等价物应该不会太难 createdb=$(db2 get authorizations|egrep 'SYSADM|SYSCTRL' | grep -c ' = YES') if [[ $creat

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

我需要通过DB2权限来验证用户/密码,以创建/删除数据库。这有什么特别的命令吗


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

这就是我在unixshell中所做的,适应java等价物应该不会太难

createdb=$(db2 get authorizations|egrep 'SYSADM|SYSCTRL' | grep -c ' = YES')
if [[ $createdb ]]; then
   echo 'Do it'
fi

这就是我在unixshell中所做的,适应java等价物并不难

createdb=$(db2 get authorizations|egrep 'SYSADM|SYSCTRL' | grep -c ' = YES')
if [[ $createdb ]]; then
   echo 'Do it'
fi

试试这个;这意味着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。

试试这个;这意味着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。

“获取授权”
命令在9.7版中被中断。
“AUTH\u LIST\u 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'
链接:

“获取授权”
命令在9.7版中停止使用。
“AUTH\u LIST\u 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'

链接:

谢谢@Ingo。我需要用一个命令来验证用户/密码,该命令告诉用户是否有权创建/删除数据库。但上述命令仅适用于现有数据库,而在我的情况下,现有数据库不存在。@Kishore-您仍然可以检查用户是否是在实例配置中配置的组的成员。(如何做到这一点是特定于操作系统的。在UNIX中,请查找id命令。)但我不知道如何使用特定于操作系统的Java代码验证用户是的,这是可以理解的,因为Java不处理不可移植的操作系统级细节。不过,还有Runtime.execThank@Ingo。我需要用一个命令来验证用户/密码,该命令告诉用户是否有权创建/删除数据库。但上述命令仅适用于现有数据库,而在我的情况下,现有数据库不存在。@Kishore-您仍然可以检查用户是否是在实例配置中配置的组的成员。(如何做到这一点是特定于操作系统的。在UNIX中,请查找id命令。)但我不知道如何使用特定于操作系统的Java代码验证用户是的,这是可以理解的,因为Java不处理不可移植的操作系统级细节。尽管如此,仍然存在Runtime.exec