[英]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
询问域控制器您属于哪些组而不是本地计算机。
有两种方法可以解决此问题:
将DB2注册表变量DB2_GRP_LOOKUP
为LOCAL
db2set DB2_GRP_LOOKUP=LOCAL
这将指示DB2始终使用本地计算机来枚举用户的组,而不管ID是在域中还是在本地计算机中定义的。
您必须重新启动DB2实例才能使它生效。
使用本地计算机上存在的具有足够特权的另一个ID(例如,可能在安装过程中创建的db2admin ID)。
注意:@AngocA关于验证SYSADM_GROUP
等设置的答案是正确的; 但是请注意,在Windows上,默认情况下SYSADM_GROUP
为空。 在这种情况下,DB2将本地计算机的Administrators
组用作SYSADM_GROUP
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.