安装portlet服务器时出现DB2安装错误

时间:2014-02-03 06:22:07

标签: java db2 portlet websphere-portal

在我的计算机上安装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.

错误日志log file URL

我是我机器的管理员。 Click here for screenshot

2 个答案:

答案 0 :(得分:0)

如果您是机器的管理员,则无关紧要。 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

答案 1 :(得分:0)

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

因此,在您的情况下,即使您的PJAMI ID在本地计算机上具有管理员权限,DB2也会向域控制器询问您所属的组而不是本地计算机。

有两种解决方法:

  1. 将DB2注册表变量DB2_GRP_LOOKUP设置为LOCAL

    db2set DB2_GRP_LOOKUP=LOCAL
    

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

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

  2. 使用本地计算机上存在且具有足够权限的其他ID(如可能在安装期间创建的db2admin ID)。

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