暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

达梦如何开启免密登录

原创 Lucifer三思而后行 2024-09-19
762

大家好,这里是公众号 DBA学习之路,分享一些学习国产数据库路上的知识和经验。

前言

相信很多用管了 Oracle 数据库的 DBA,很喜欢用 sqlplus / as sysdba 快速连接到数据库的方式。但是,刚安装好的达梦数据库执行 disql / as sysdba 却会报错:

[dmdba@dm8:~]$ disql / as sysdba [-2512]:未经授权的用户. disql V8 用户名: 密码:

初看好像不支持,但是达梦其实也是支持通过操作系统认证使用免密的方式登录数据库,不过需要人为配置一下,本文就介绍一下如何使用免密方式连接达梦数据库。

开启免密登录

达梦数据库在默认安装时是不开启免密登录的,可能是为了保护数据库的安全考虑。

当然,达梦也是支持免密登录,只不过需要满足以下两个条件:

  • 1、需要新建用户组:dmdba,并将 dmdba 用户添加到组中。
  • 2、配置 ENABLE_LOCAL_OSAUTH 参数为 1

添加 dmdba 组

首先,需要创建 dmdba 组,然后将组权限附加给 dmdba 用户:

[root@dm8:/root]# groupadd dmdba [root@dm8:/root]# usermod -a -G dmdba dmdba

配置参数 ENABLE_LOCAL_OSAUTH

ENABLE_LOCAL_OSAUTH 参数是一个隐藏参数,因此想要免密登录需要先设置参数然后重启生效:

-- 查看参数值,当 ENABLE_LOCAL_OSAUTH=0 时登录数据库,均不输入内容,dmdba 用户无法登录数据库。 SQL> select para_name,para_value,file_value from v$dm_ini where para_name ='ENABLE_LOCAL_OSAUTH'; 行号 PARA_NAME PARA_VALUE FILE_VALUE ---------- ------------------- ---------- ---------- 1 ENABLE_LOCAL_OSAUTH 0 0 -- 修改为 1 SQL> sp_set_para_value(2,'ENABLE_LOCAL_OSAUTH',1); DMSQL 过程已成功完成 -- 也可以使用 alter system 设置 SQL> alter system set 'ENABLE_LOCAL_OSAUTH' = 1 spfile; DMSQL 过程已成功完成

重启数据库生效:

[dmdba@dm8:~]$ DmServiceDMSERVER restart

注意:修改此参数需要拥有 dba 权限,当忘记 SYSDBA 密码时数据库内无其他拥有 dba 权限的用户时,无法通过以上方式更改ENABLE_LOCAL_OSAUTH 参数值。

免密登录

## 默认端口为 5236 [dmdba@dm8:~]$ disql / as sysdba 服务器[LOCALHOST:5236]:处于普通打开状态 登录使用时间 : 7.330(ms) disql V8 SQL> select name from v$database; 行号 NAME ---------- ------ 1 DAMENG ## 如果有多个数据库实例,可以指定端口访问 [dmdba@dm8:~]$ disql /@localhost:5236 as sysdba 服务器[localhost:5236]:处于普通打开状态 登录使用时间 : 5.325(ms) disql V8 SQL>

今天的国产数据库小知识分享到这就结束了。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论