1、什么是免密登陆??
使用过oracle的朋友都知道,oracle在安装完之后,一般默认开启操作系统认证登陆,没有密码的情况下,可以通过进入服务器,通过操作系统认证SQLPLUS / AS SYSDBA ,可以进行相关的数据库管理工作;达梦数据库在部署完数据库后,默认不支持操作系统认证登陆,若有需要可在后期进行配置,接下来我来配置免密登陆。
1.1、免密登陆的优缺点
我个人认为免密的登陆可以让忘记密码的情况下进行密码修改,甚至可以直接修改SYS的密码,确实带了很多的便利性,缺点是安全度不高,只要能登陆服务器的用户都可以进入数据库,这对数据库本身来说存在潜在的隐患。所以配置免密登陆仅供学习探讨,不作为生产中必要配置。
2、免密登陆配置
2.1、DM默认的正常登录
./disql SYSDBA/ADMIN123456
2.2、配置免密登陆
2.2.1、配置dm.ini
修改 ENABLE_LOCAL_OSAUTH=1
#查询是否有该参数:我查询下来没有,所以我直接加入该参数
grep ENABLE_LOCAL_OSAUTH /dm8/dmdbms/GRP1_RT_01/dm.ini
grep ENABLE_REMOTE_OSAUTH /dm8/dmdbms/GRP1_RT_01/dm.ini
#加入参数
echo 'ENABLE_LOCAL_OSAUTH=1' >> /dm8/dmdbms/GRP1_RT_01/dm.ini
echo 'ENABLE_REMOTE_OSAUTH=1' >> /dm8/dmdbms/DMDATA/dm.ini
--若dm.ini中没有,直接在dm.ini最底部加入该参数
2.2.2、创建dmdba/dmauditor组,并将dmdba/dmauditor添加到dmdba用户组里
groupadd -g 60000 dmdba
groupadd -g 60010 dmauditor
usermod -a -G dmdba dmdba
usermod -a -G dmauditor dmdba
[dmdba@dm8 bin]$ id dmdba
uid=1001(dmdba) gid=2001(dinstall) groups=2001(dinstall),2002(dmdba),60010(dmauditor)
#如果包ssl错,记得在dm.ini里把ENABLE_ENCRYPT修改为0
2.2.3、进入系统修改参数:这一步需要考虑为什么前面加了不生效,要走了这一步才行
SQL> alter system set 'ENABLE_LOCAL_OSAUTH' = 1 spfile; --修改参数值,由于该参数是静态参数,因此需要重启数据开能生效。
或者:
SQL> sp_set_para_value(2,'ENABLE_LOCAL_OSAUTH',1);
DMSQL 过程已成功完成
已用时间: 0.875(毫秒). 执行号:14102.
SQL> alter system switch logfile; --不要急于关闭数据库,先做先归档切换。
操作已执行
SQL> select * from v$dm_ini where para_name='ENABLE_LOCAL_OSAUTH'; 确认file_value=1
行号 PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE DEFAULT_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION
---------- ------------------- ---------- --------- --------- ------------- ------- ---------- ---------- --------------------------------------------------------
1 ENABLE_LOCAL_OSAUTH 1 0 1 0 N 1 1 Whether to enable local authorization by operating syste
2.2.3、免密登录(登陆之前需要重启数据库,保证前面的修改重启后生效)
#默认端口
./disql / AS SYSDBA
3、验证免密登陆
[dmdba@dm8 bin]$ ./disql / AS SYSDBA
Server[LOCALHOST:5236]:mode is normal, state is open
login used time : 138.938(ms)
disql V8
./disql /:5237 AS SYSDBA
[dmdba@dm8 bin]$ ./disql /:32141 AS SYSDBA
Server[LOCALHOST:5237]:mode is normal, state is open
login used time : 3.712(ms)
disql V8
---对于忘记了SYSDBA密码的,可以免密登录后修改密码
SQL> alter user sysdba identified by ADMIN123456;
executed successfully
used time: 127.089(ms). Execute id is 500.
4、总结
通过配置免密登陆配置发现一个问题,在忘记密码的情况下是不能配置的,通过实验我发现需要使用SYSDBA,运行 alter system set 'ENABLE_LOCAL_OSAUTH' = 1 spfile,这是我配置的时候发现,至于能不能在忘记密码配置,有待进一步多学习验证。
------------------------------------------------//到此结束//-------------------------------------------------
更多内容,请访问达梦社区地址:https:eco.dameng.com