前言
本文档针对达梦数据库操作系统身份验证功能,提供完整的配置实施指南。适用于需要通过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 参数说明
3 操作流程
示例:配置用户 dameng
实现OS认证登录
1. 在数据库( localhost:5236
)中创建一个操作系统的同名用户,并修改 INI 参数
-- 创建同名用户
SQL> CREATE USER dameng IDENTIFIED BY "dameng12345";
-- 修改认证参数
SQL> SP_SET_PARA_VALUE(2,'ENABLE_LOCAL_OSAUTH',1);
重新启动数据库服务器,使 INI 参数生效。
2. 操作系统配置
# 创建用户组
groupadd dmusers
# 添加用户到组
usermod -G dmusers dameng
[root@DMDSC01:~]$ groupadd dmusers
[root@DMDSC01:~]$ usermod -G dmusers dameng
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. 创建操作系统用户
adduser henry
id henry # 验证用户信息
[root@DMDSC01:~]$ adduser henry
[root@DMDSC01:~]$ id henry
用户id=56784(henry) 组id=56785(henry) 组=56785(henry)
[root@DMDSC01:~]$
2. 操作系统创建dmusers组
groupadd -g 10020 dmusers # 已存在可跳过
usermod -a -G dmusers henry # 追加用户组
[root@DMDSC01:~]$ groupadd -g 10020 dmusers #我这里dmusers组存在,可以忽略
groupadd:“dmusers”组已存在
[root@DMDSC01:~]$
3. 将操作系统henry用户加入到dmusers组
CREATE USER HENRY IDENTIFIED BY "123456789";
GRANT RESOURCE, PUBLIC, VTI, SOI TO HENRY;
[root@DMDSC01:~]$ usermod -a -G dmusers henry
[root@DMDSC01:~]$ id henry
用户id=56784(henry) 组id=56785(henry) 组=56785(henry),10020(dmusers)
[root@DMDSC01:~]$
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. 版本兼容性
• 之前测试新版(20220304后):直接开启参数即可免密登录 • 之前测试旧版(2021年版本以前):可能会遇到报错 -2512: 未经授权的用户
2. 异常处理方案
1)创建dmdba组
groupadd -g 10010 dmdba
2)将操作系统用户加入到dmdba组(作为副组)
usermod -a -G dmdba dmdba
3. 权限要求 • 操作系统用户需具备 $DM_HOME/bin
目录执行权限• 建议使用 dmdba
用户作为主管理账户
以上测试基于DM8 03134284058-20230621-193718-20046测试
文章转载自国产数据库学堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




