You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

非管理员用户USER01通过DBeaver连接ADW的配置方法及无钱包连接可行性咨询

非管理员用户USER01通过DBeaver连接ADW的配置方法及无钱包连接可行性咨询

你好呀!我来帮你一步步梳理这个问题的解决方案~

首先先明确下你的现状:你已经成功用ADMIN用户通过钱包在DBeaver里连上了ADW,配置界面大概是指定了钱包路径、启用了SSL加密、用用户名密码验证的模式;之后你创建了USER01并授予了CONNECT和RESOURCE角色,但用同一个钱包尝试连接USER01时遇到了连接失败的错误(错误界面提示连接验证不通过或权限相关问题)。

接下来咱们逐个解决你的疑问:

一、是否需要钱包来连接USER01?

默认情况下,Oracle Autonomous Data Warehouse(ADW)是推荐使用钱包来进行安全连接的,但并不是必须用钱包——如果你不想分享钱包(确实,钱包包含服务器验证的关键信息,分享有风险),可以通过配置TLS加密+服务器证书验证的方式实现无钱包连接。

不过先说明:你现在用同一个钱包连不上USER01,并不是因为钱包和用户绑定,而是可能配置或权限上的小问题,咱们先解决这个,再讲无钱包的方案。

二、如何配置USER01的连接?

方案1:使用现有钱包连接USER01

这是最快捷的方式,只需要修正几个配置点:

  • 复制并修改ADMIN的连接配置:在DBeaver里复制你已有的ADMIN连接,把用户名改成USER01,密码换成你设置的Ab1234567890,确保钱包路径和原来的ADMIN连接完全一致(钱包是用来验证ADW服务器身份的,和用户无关,同一个钱包可以给多个用户用)。
  • 检查IP访问权限:确认ADW的访问控制列表(ACL)里已经添加了你当前机器的IP地址——如果你的IP不在允许列表里,哪怕用户权限正确也会连接失败。
  • 验证用户权限:虽然你已经给USER01授予了CONNECT和RESOURCE角色,但可以额外执行下GRANT CREATE SESSION TO USER01;(CONNECT角色理论上包含这个权限,但有时候ADW的租户设置会有差异,补授一下更稳妥)。
  • 检查DBeaver的SSL设置:确保连接的SSL模式设置为RequireVerify Full,不要改成禁用,ADW默认要求加密连接。

方案2:无钱包连接USER01(推荐,避免分享钱包)

如果不想用钱包,按照以下步骤配置:

  1. 获取ADW的根证书:你可以从Oracle官方下载Oracle根证书,或者从你现有的钱包文件里提取(钱包里的cwallet.ssoewallet.p12可以导出根证书)。
  2. 在DBeaver里新建连接
    • 选择Oracle数据库,连接类型选Thin
    • 在“主”标签页填写用户名USER01、密码Ab1234567890,然后在“连接设置”里手动输入ADW的连接字符串,格式如下:
      (description=(address=(protocol=tcps)(port=1522)(host=你的ADW服务器地址))(connect_data=(service_name=你的ADW服务名))(security=(ssl_server_cert_dn="你的ADW服务器证书DN")))
      
    • 切换到“SSL”标签页,启用SSL,选择“使用自定义证书”,导入你刚才获取的根证书,SSL模式设置为Verify CA
  3. 确认ADW的无钱包连接设置:登录ADW的控制台,检查是否允许了TCPS连接(默认是允许的),并且你的IP已经在ACL里。

这样配置后,就不需要依赖钱包文件,只用证书和用户名密码就能安全连接了,也避免了分享钱包的风险。

备注:内容来源于stack exchange,提问作者Lev

火山引擎 最新活动