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

达梦数据库运维提效神器:OS认证免密登录配置详解

545

 

前言

本文档针对达梦数据库操作系统身份验证功能,提供完整的配置实施指南。适用于需要通过OS用户实现数据库安全认证的场景,涵盖本机/远程验证模式切换、关键参数配置、用户组映射规则及操作全流程。通过系统级身份验证与数据库权限的深度整合,可有效提升安全管理效率。文中包含典型配置示例、工具支持说明及版本适配注意事项。

1 验证类型概述

基于操作系统的身份验证分为两种模式:

1.1 本机验证

  • • 参数配置
    ENABLE_LOCAL_OSAUTH = 1  # 默认值0,需设置为静态参数

1.2 远程验证

  • • 前置条件:仅支持安全版本
  • • 参数配置
    ENABLE_REMOTE_OSAUTH = 1  # 默认值0,需设置为静态参数
    ENABLE_ENCRYPT = 1        # 默认值1,启用SSL安全连接

操作要求

  • • 操作系统用户需加入以下组实现权限映射:
    • • dmdba
       组 → SYSDBA
    • • dmsso
       组 → SYSSSO
    • • dmauditor
       组 → SYSAUDITOR
  • • 或加入 dmusers
     组映射数据库同名用户(需预先创建同名数据库用户)

2 参数说明

参数名称
默认值
功能说明
ENABLE_LOCAL_OSAUTH
0
启用本机操作系统认证
ENABLE_REMOTE_OSAUTH
0
启用远程操作系统认证
ENABLE_ENCRYPT
1
强制SSL加密连接

3 操作流程

示例:配置用户 dameng
 实现OS认证登录

  1. 1. 在数据库(localhost:5236
    )中创建一个操作系统的同名用户,并修改 INI 参数
-- 创建同名用户
SQL> CREATE USER dameng IDENTIFIED BY "dameng12345";
 
 -- 修改认证参数
 SQL> SP_SET_PARA_VALUE(2,'ENABLE_LOCAL_OSAUTH',1);

重新启动数据库服务器,使 INI 参数生效。

  1. 2. 操作系统配置
# 创建用户组
groupadd dmusers
  
# 添加用户到组
usermod -G dmusers dameng

[root@DMDSC01:~]$ groupadd dmusers
[root@DMDSC01:~]$ usermod -G dmusers dameng

  1. 3. 登录验证
su - dameng
/disql @localhost:5236 AS USERS

[dameng@DMDSC01 ~]$ ./disql @localhost:5236 as users

工具支持:DIsql/dmfldr/dexp/dimp等工具均支持OS认证登录


4 普通用户配置

4.1 测试案例(用户 henry

  1. 1. 创建操作系统用户
 adduser henry
 id henry  # 验证用户信息

[root@DMDSC01:~]$ adduser henry
[root@DMDSC01:~]$ id henry
用户id=56784(henry) 组id=56785(henry) 组=56785(henry)
[root@DMDSC01:~]$

  1. 2. 操作系统创建dmusers组
groupadd -g 10020 dmusers    # 已存在可跳过
usermod -a -G dmusers henry  # 追加用户组

[root@DMDSC01:~]$ groupadd -g 10020 dmusers  #我这里dmusers组存在,可以忽略
groupadd:“dmusers”组已存在
[root@DMDSC01:~]$

  1. 3. 将操作系统henry用户加入到dmusers组
CREATE USER HENRY IDENTIFIED BY "123456789";
GRANT RESOURCE, PUBLIC, VTI, SOI TO HENRY;
   
[root@DMDSC01:~]$ usermod --G dmusers henry
[root@DMDSC01:~]$ id henry
用户id=56784(henry) 组id=56785(henry) 组=56785(henry),10020(dmusers)
[root@DMDSC01:~]$

  1. 4. 验证登录
su - henry
cd /dmdbms/bin
./disql /@demo:5236AS USERS

[dmdba@DMDSC01:/dmdbms/bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 4.661(ms)
密钥过期时间:2024-06-21
disql V8
23:10:02 SYSDBA@demo:5236SQL>CREATEUSER HENRY IDENTIFIED BY "123456789";
操作已执行
已用时间: 77.405(毫秒). 执行号:3808104.
23:10:03 SYSDBA@demo:5236SQL>GRANT RESOURCE,PUBLIC,VTI,SOI TO HENRY;
操作已执行
已用时间: 23.404(毫秒). 执行号:3808105.
23:10:17 SYSDBA@demo:5236SQL>

5.切换到操作系统henry用户,并使用disql登录数据库

[root@DMDSC01:~]$ su - henry
[henry@DMDSC01~]$ cd /dmdbms/bin
[henry@DMDSC01 bin]$ ./disql /@localhost:5236as users

服务器[localhost:5236]:处于普通打开状态
登录使用时间 : 12.668(ms)
disql V8
SQL>selectuser();

行号     USER()
---------- ------
1          HENRY

已用时间: 5.847(毫秒). 执行号:3816800.
SQL> exit
[henry@DMDSC01 bin]$ ./disql /as users

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.441(ms)
disql V8
SQL>selectuser();

行号     USER()
---------- ------
1          HENRY

已用时间: 0.826(毫秒). 执行号:3817400.
SQL>

另外如果执行登录命令的操作系统用户只有加入了dmusers组中,还可以使用auto类型登录数据库,如下所示

[henry@DMDSC01 bin]$ ./disql /as auto

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 12.719(ms)
disql V8
SQL>selectuser();

行号     USER()
---------- ------
1          HENRY

已用时间: 4.010(毫秒). 执行号:3823200.
SQL>

5 注意事项

  1. 1. 版本兼容性
  • • 之前测试新版(20220304后):直接开启参数即可免密登录

  • • 之前测试旧版(2021年版本以前):可能会遇到报错 -2512: 未经授权的用户


  1. 2. 异常处理方案
    1)创建dmdba组
groupadd -10010 dmdba

2)将操作系统用户加入到dmdba组(作为副组)

usermod --G dmdba dmdba
  1. 3. 权限要求
    • • 操作系统用户需具备$DM_HOME/bin
      目录执行权限
    • • 建议使用dmdba
      用户作为主管理账户

以上测试基于DM8 03134284058-20230621-193718-20046测试


文章转载自国产数据库学堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论