dm8用户配置免密登录

2024-04-04 16:52
文章标签 配置 登录 用户 免密 dm8

本文主要是介绍dm8用户配置免密登录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

dm8用户配置免密登录

基础环境
操作系统:Red Hat Enterprise Linux Server release 7.9 (Maipo)
数据库版本:DM Database Server 64 V8
架构:单实例

1 操作系统认证(sysdba)

1.1 官方文档

《DM8安全管理》手册
2 用户标识与鉴别
2.3.1 基于操作系统的身份验证
基于 OS 的身份验证分为本机验证和远程验证,本机验证需要将 DM 配置文件 dm.ini的 ENABLE_LOCAL_OSAUTH 参数设置为 1(缺省为 0) ;而远程验证需要将 DM 配置文件dm.ini 的ENABLE_REMOTE_OSAUTH 参数设置为 1(缺省为 0),表示支持远程验证,同时还要将 dm.ini 的 ENABLE_ENCRYPT 参数设置为 1(缺省为 1),表示采用 SSL 安全连接。 这三个参数均为静态参数, 数据库管理员可以使用系统过程SP_SET_PARA_VALUE 进行修改,但修改后需要重新启动 DM 服务器才能生效。
基于 OS 的身份验证需要首先将操作系统用户加入到操作系统的dmdba|dmsso|dmauditor 用户组,分别对应数据库的 SYSDBA|SYSSSO|SYSAUDITOR用户。 也可以将操作系统用户加入到操作系统的 dmusers 用户组来进行基于 OS 的身份验证,对应数据库的同名用户,即此时数据库中需要存在一个与操作系统用户同名的用户。

从官方文档知,sysdba免密登录(操作系统的身份验证)需要修改参数 ENABLE_LOCAL_OSAUTH 以及加入dmdba用户组。

1.2 修改ENABLE_LOCAL_OSAUTH 参数

[dmdba@test1 ~]$ disql sysdba/Dameng123@localhost:5237服务器[localhost:5237]:处于普通打开状态
登录使用时间 : 2.898(ms)
disql V8
SQL> 
SQL>  select * from v$parameter where name='ENABLE_LOCAL_OSAUTH';行号     ID          NAME                TYPE      VALUE SYS_VALUE FILE_VALUE DESCRIPTION                                                     DEFAULT_VALUE ISDEFAULT  
---------- ----------- ------------------- --------- ----- --------- ---------- --------------------------------------------------------------- ------------- -----------
1          480         ENABLE_LOCAL_OSAUTH READ ONLY 0     0         0          Whether to enable local authorization by operating system users 0             1已用时间: 3.842(毫秒). 执行号:1203.
SQL> SP_SET_PARA_VALUE(2,'ENABLE_LOCAL_OSAUTH',1);
DMSQL 过程已成功完成
已用时间: 1.365(毫秒). 执行号:1204.
或者通过方式修改:
alter system set 'ENABLE_LOCAL_OSAUTH'=1 spfile;SQL> select * from v$parameter where name='ENABLE_LOCAL_OSAUTH';行号     ID          NAME                TYPE      VALUE SYS_VALUE FILE_VALUE DESCRIPTION                                                     DEFAULT_VALUE ISDEFAULT  
---------- ----------- ------------------- --------- ----- --------- ---------- --------------------------------------------------------------- ------------- -----------
1          480         ENABLE_LOCAL_OSAUTH READ ONLY 0     0         1          Whether to enable local authorization by operating system users 0             0已用时间: 3.768(毫秒). 执行号:1207.--重启实例
[root@test1 ~]# systemctl stop DmServicePROD.service 
[root@test1 ~]# systemctl start DmServicePROD.service SQL> /服务器[localhost:5237]:处于普通打开状态
已连接行号     ID          NAME                TYPE      VALUE SYS_VALUE FILE_VALUE DESCRIPTION                                                     DEFAULT_VALUE ISDEFAULT  
---------- ----------- ------------------- --------- ----- --------- ---------- --------------------------------------------------------------- ------------- -----------
1          480         ENABLE_LOCAL_OSAUTH READ ONLY 1     1         1          Whether to enable local authorization by operating system users 0             0已用时间: 6.185(毫秒). 执行号:500.
SQL>

注意:
1、要使用sysdba用户修改
2、需要重启实例生效

1.3 添加dmdba用户组

[dmdba@test1 ~]$ id dmdba
uid=12345(dmdba) gid=12349(dinstall) groups=12349(dinstall)[root@test1 ~]# groupadd -g 50001 dmdba
[root@test1 ~]# usermod -a -G dmdba dmdba
[root@test1 ~]# id dmdba
uid=12345(dmdba) gid=12349(dinstall) groups=12349(dinstall),50001(dmdba)

1.4 登录测试

[dmdba@test1 ~]$ disql /:5237 as sysdba服务器[LOCALHOST:5237]:处于普通打开状态
登录使用时间 : 3.030(ms)
disql V8
SQL> select status$ from v$instance;行号     STATUS$
---------- -------
1          OPEN已用时间: 2.028(毫秒). 执行号:600.

1.5 问题

1、ENABLE_LOCAL_OSAUTH 这个参数只能通过sysdba去修改,所以只能是忘记sysdba密码前把该参数设置为1。而不能在忘记sysdba密码后去设置。
2、ENABLE_LOCAL_OSAUTH=1直接加到文件,并重启实例也无效。

2 wallet(普通用户+sysdba)

2.1 官方文档

《DM8安全管理》手册
12 登录用户名密码外部存储
为了避免用户登录数据库时直接接触数据库登录密码, DM 提供了一种登录用户名密码外部存储方式,系统管理员可将用户名和密码存储在外部加密的密码文件(wallet 文件) 中,用户登录数据库时只需提供配置好的服务名便可成功登录数据库。
具体实现分为两步:一是创建 wallet 文件,用于存储服务名、用户名和登录密码。二是配置 dm_svc.conf 文件, 设置 wallet 文件路径以及服务名对应的数据库连接地址(IP 和 PORT)。配置完成后用户便可直接通过服务名成功登录数据库。
以上数据库登录方式存在以下限制:
1)LOGIN 命令不支持利用 wallet 文件登录数据库
2)DM 管理工具和 JDBC 不支持利用 wallet 文件登录数据库
DM 提供了一个数据库密码管理工具 dmmkstore,系统管理员可通过 dmmkstore 工具创建、访问或修改 wallet 文件

2.2 测试

2.2.1 用户准备

SQL> CREATE USER USER01 IDENTIFIED BY 123456789;
操作已执行
已用时间: 25.687(毫秒). 执行号:500.
SQL> CREATE USER USER02 IDENTIFIED BY 987654321;
操作已执行
已用时间: 3.576(毫秒). 执行号:501.
SQL> commit;
操作已执行
已用时间: 0.301(毫秒). 执行号:502.

2.2.2 配置 dm_svc.conf 文件

vi /etc/dm_svc.conf
WALLET_LOCATION=(/dm/wallet)
dm_user01=(192.168.10.231:5237)
dm_user02=(192.168.10.231:5237)
dm_sysdba=(192.168.10.231:5237)测试连接:
[dmdba@test1 ~]$ disql user01/123456789@dm_user01服务器[192.168.10.231:5237]:处于普通打开状态
登录使用时间 : 2.807(ms)
disql V8
SQL> select user();行号     USER()
---------- ------
1          USER01已用时间: 2.470(毫秒). 执行号:600.
SQL> exit
[dmdba@test1 ~]$ disql user02/987654321@dm_user02服务器[192.168.10.231:5237]:处于普通打开状态
登录使用时间 : 3.126(ms)
disql V8
SQL> select user();行号     USER()
---------- ------
1          USER02已用时间: 1.199(毫秒). 执行号:700.
SQL> exit
[dmdba@test1 ~]$ disql sysdba/Dameng123@dm_sysdba服务器[192.168.10.231:5237]:处于普通打开状态
登录使用时间 : 2.990(ms)
disql V8
SQL> select user();行号     USER()
---------- ------
1          SYSDBA已用时间: 0.946(毫秒). 执行号:1000.

2.2.3 创建 wallet 文件

在/dm/wallet 路径下创建一个 wallet 文件,文件密码为Wallet_123

[dmdba@test1 ~]$ dmmkstore -wrl /dm/wallet -create
DM Secret Store Tool: V8Enter password:
Enter password again:
[dmdba@test1 ~]$ 
[dmdba@test1 ~]$ ll /dm/wallet
total 4
-rw-r--r-- 1 dmdba dinstall 1341 Aug 18 04:40 dmwallet.prikey

2.2.4 创建凭据

在 wallet 文件中创建两条凭据,服务名分别为 dm_user01 和 dm_user02

[dmdba@test1 ~]$ dmmkstore -wrl /dm/wallet -createCredential dm_user01 USER01 123456789
DM Secret Store Tool: V8Enter wallet password:
Create credential DM.security.client.connect_string1
[dmdba@test1 ~]$ dmmkstore -wrl /dm/wallet -createCredential dm_user02 USER02 987654321
DM Secret Store Tool: V8Enter wallet password:
Create credential DM.security.client.connect_string2
[dmdba@test1 ~]$ dmmkstore -wrl /dm/wallet -createCredential dm_sysdba sysdba Dameng123
DM Secret Store Tool: V8Enter wallet password:
Create credential DM.security.client.connect_string3

2.2.5 查看凭据

查看 wallet 文件中的凭据,需要口令 Wallet_123

[dmdba@test1 ~]$ dmmkstore -wrl /dm/wallet -listCredential
DM Secret Store Tool: V8Enter wallet password:
List credential (index: connect_string username)
1: dm_user01 USER01
2: dm_user02 USER02
3: dm_sysdba sysdba

2.2.6 使用客户端工具连接数据库

[dmdba@test1 ~]$ disql /@dm_user01服务器[192.168.10.231:5237]:处于普通打开状态
登录使用时间 : 6.523(ms)
disql V8
SQL> select user();行号     USER()
---------- ------
1          USER01已用时间: 1.083(毫秒). 执行号:800.
SQL> exit
[dmdba@test1 ~]$ disql /@dm_user02服务器[192.168.10.231:5237]:处于普通打开状态
登录使用时间 : 5.238(ms)
disql V8
SQL> select user();行号     USER()
---------- ------
1          USER02已用时间: 1.215(毫秒). 执行号:900.
SQL> 
SQL> exit
[dmdba@test1 ~]$ disql /@dm_sysdba服务器[192.168.10.231:5237]:处于普通打开状态
登录使用时间 : 5.390(ms)
disql V8
SQL> select user();行号     USER()
---------- ------
1          SYSDBA已用时间: 0.996(毫秒). 执行号:1100.
SQL> exit

谨记:心存敬畏,行有所止。

这篇关于dm8用户配置免密登录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/876333

相关文章

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

maven私服配置全过程

《maven私服配置全过程》:本文主要介绍maven私服配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用Nexus作为 公司maven私服maven 私服setttings配置maven项目 pom配置测试效果总结使用Nexus作为 公司maven私

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别