我是DB2的新手并且安装了DB2开发人员版。我启动了DB2命令行--add创建了一个实例并切换到该实例。然后我将在此实例下创建一个数据库,但它给了我以下错误消息
SQL1092N The requested command or operation failed because the user ID does
not have the authority to perform the requested command or operation. User
ID: "USER_NAME".
我使用Win 10并尝试将默认用户添加到DB2USERS和DB2ADMNS组,但它没有帮助。我假设' db2admin'用户应该存在吗?如何确保它存在以及如何切换到该用户?
答案 0 :(得分:0)
确保在更改Db2设置详细信息时,使用设备上的本地管理员权限登录Windows。
如果您的设备安装了多个Db2产品,请使用'默认DB2和数据库客户端界面选择向导' 选择对正确的产品执行操作,以便在使用db2cmd时.exe或其他与数据库相关的工具,他们将使用正确的产品。当您只安装一个Db2产品时,您不需要这样做。
如果您的设备是Windows Server域的成员并且您以域用户身份登录,则运行 db2cwadmin.bat 并在生成的DB2CMD.EXE窗口中:
将DB2INSTANCE环境变量设置为DB2实例的名称(默认情况下,在Windows上这是DB2)。 为此,请使用命令(替换Db2实例名称):
set DB2INSTANCE=your_db2_instance_name
将您的域帐户添加到本地组DB2ADMNS(如果您在Db2安装期间选择了默认组)。 要执行此操作,请使用控制面板中的GUI,或使用命令行(替换您自己的域名和用户名):
net localgroup db2admins mydomain\myuser /add
并确保命令成功。然后运行以下命令:
db2set DB2_GRP_LOOKUP=LOCAL,TOKENLOCAL
db2 update dbm cfg using sysadm_group DB2ADMNS
db2stop
db2start
考虑使用域帐户而不是本地帐户运行Windows Db2服务。要执行此操作,请运行 services.msc ,找到Db2服务(默认情况下名称为DB2-0),并调整属性"登录"用于指定域用户帐户的属性,应用更改以及停止&重启服务。 使用域帐户运行服务使Db2可以访问该域帐户具有相关访问权限的域资源(例如网络驱动器等)。您不需要使用自己的域帐户,可以使用具有某些特征的域帐户,例如非过期密码。
现在尝试创建数据库。 如果仍然出现相同的症状,请编辑您的问题以添加命令行及其输出以及db2level输出。它还有助于检查Db2诊断文件 db2diag.log ,它通常可以显示更多可以解决简单问题的详细信息。