繁体   English   中英

安装Portlet服务器时发生DB2安装错误

[英]DB2 installation error while installing portlet server

在我的机器上安装Portlet Server时出现DB2错误。

 [exec] + db2 "UPDATE DBM CFG USING sheapthres 0" 
 [exec] DB20000I  The UPDATE DATABASE MANAGER CONFIGURATION command completed 
 [exec] successfully.

 [exec] + db2 -v "CREATE DB wpsdb USING CODESET UTF-8 TERRITORY US PAGESIZE 8192" 
 [exec] CREATE DB wpsdb USING CODESET UTF-8 TERRITORY US PAGESIZE 8192
 [exec] SQL1092N  "PJAMI" does not have the authority to perform the requested command 
 [exec] or operation.

错误日志日志文件URL

我是我的机器的管理员。 点击此处获取屏幕截图

您是否是计算机的管理员都没有关系。 DB2依靠OS安全性机制进行认证步骤。 但是,授权步骤在DB2内部。 这意味着DB2具有多个安全级别,您的用户并不属于最重要的级别。

为了创建数据库,您必须检查文档中所需的权限: http : //pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.admin.cmd。 doc / doc / r0001941.html

如您所见,只有属于SYSADM或SYSCTRL的用户才能创建数据库。 但是现在,您可以问这些权限在哪里定义? 好吧,这些权限是在实例级别定义的,并为其关联了一个OS组。 您运行命令:

db2 get dbm cfg | grep GROUP

然后您将看到这些组。 如果您的用户不属于这些组之一,则您的用户将无法创建数据库。

为了知道您所属的组:

id

为了更改组,您需要是root

sudo su vi /etc/group

为了更改DB2授权,您需要具有SYSADM授权或切换到实例所有者:

su - db2inst1
db2 update dbm cfg using SYSADM_GROUP db2admins

当您的计算机是Windows域的一部分时,缺省情况是DB2根据定义ID的位置枚举特定ID所属的组。 因此,DB2将向域控制器询问域ID,并向本地计算机询问本地ID。

因此,就您而言,即使您的PJAMI ID在本地计算机上具有管理员特权,DB2 PJAMI询问域控制器您属于哪些组而不是本地计算机。

有两种方法可以解决此问题:

  1. 将DB2注册表变量DB2_GRP_LOOKUPLOCAL

     db2set DB2_GRP_LOOKUP=LOCAL 

    这将指示DB2始终使用本地计算机来枚举用户的组,而不管ID是在域中还是在本地计算机中定义的。

    您必须重新启动DB2实例才能使它生效。

  2. 使用本地计算机上存在的具有足够特权的另一个ID(例如,可能在安装过​​程中创建的db2admin ID)。

注意:@AngocA关于验证SYSADM_GROUP等设置的答案是正确的; 但是请注意,在Windows上,默认情况下SYSADM_GROUP为空。 在这种情况下,DB2将本地计算机的Administrators组用作SYSADM_GROUP

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM