我使用db2stop force停止了我的数据库.启动后重新启动备份,之后我无法再从客户端连接到db:使用命令
db2使用"user"连接到"dbname"
SQL30082N安全处理失败,原因为"42"("ROOT CAPABILITY REQUIRED").SQLSTATE = 08001
密码和用户名是正确的.当我在服务器连接时使用命令
db2连接到"dbname"
要么
db2连接到"dbnmae"用户"user"
要么
db2连接到"dbname"用户db2inst1
工作得很好.我真的很困惑.任何帮助非常感谢谢谢.
到目前为止我尝试了什么:
db2 get dbm cfg | grep -i auth用于本地授权的GSS插件
(LOCAL_GSSPLUGIN)=服务器连接身份验证
(SRVCON_AUTH)= NOT_SPECIFIED数据库管理器身份验证
(AUTHENTICATION)= SERVER无权限允许编目
(CATALOG_NOAUTH)=否可信客户端身份验证
(TRUST_CLNTAUTH)= CLIENT绕过联合身份验证
( FED_NOAUTH)=没有
切换到客户端但没有使用
db2使用身份验证客户端更新dbm cfg
尽管这个问题已经很久了,但对这个问题有一个坚实的答案会很棒.嗨locojay,你是怎么经营的?:-)
我在Windows PC中遇到SQL30082N原因码24问题,今天我们在AIX服务器上遇到了同样的问题.
我用谷歌搜索了几个小时,并没有找到一个快乐的答案,这与在服务器和客户端中拥有相同名称的用户有关.IMO它不适用于我,因为我遇到了一个与域隔离的VBox(没有网络).
我的情况:我以用户db2admin安装了DB2,没有安全性.然后我将DBADM授予VIRTUALUSR01并为该用户提供了密码.
db2 connect to TheBase
Run Code Online (Sandbox Code Playgroud)
工作良好.但
db2 connect to TheBase user VIRTUALUSR01 using TheRightPassword
Run Code Online (Sandbox Code Playgroud)
返回SQL30082N,原因码为24.
使用客户端身份验证通常是一个坏主意(TM)。这是因为您现在依赖于您可能无法控制的机器进行身份验证。如果我想破坏你的系统,我可以在本地创建一个新用户,例如 db2inst1 或 VIRTUALUSR01 或管理员,并使用我知道的密码,然后用它来对数据库造成严重破坏。但是,如果您的组织中没有人对其自己的计算机具有 root/管理员权限,则可以使客户端身份验证起作用。但只要有人插入自己的个人笔记本电脑,您的数据库就可能面临风险。
相反,请检查文件的权限。如果您以 root 身份安装,则 ~db2inst1/sqllib/security/db2c[hk]pw (假设实例 ID 为 db2inst1)应为 setuid root。如果没有,请针对您的实例 ( ./db2iupdt db2inst1
) 运行 db2iupdt,这应该修复权限。
如果您是在没有 root 权限的情况下安装的(“非 root 安装”),我对此表示怀疑,因为您似乎已经进行了此操作,那么您将需要阅读有关非 root 安装及其限制的 DB2 文档 - 我不这样做我自己不使用非root安装,所以我对它们不太熟悉。但是,应该有一个 set-root 脚本,您可以使用它来启用 setuid root ,当然,您必须以 root 身份运行。
归档时间: |
|
查看次数: |
9047 次 |
最近记录: |