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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/791040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

湖仓管理系统 Amoro部署

简介 Apache Amoro(incubating) 是一个构建在 Apache Iceberg 等开放数据湖表格之上的湖仓管理系统,提供了一套可插拔的数据自优化机制和管理服务,旨在为用户带来开箱即用的湖仓使用体验。 Amoro 的愿景是依托于 Apache Iceberg、Apache Paimon 等新型数据湖表格式的基础功…

Java:线程、进程、多线程

在Java中,线程、进程和多线程是实现并发编程的关键概念。理解它们的定义、特点和如何使用它们对于创建高效、响应迅速的应用程序至关重要。 进程(Process) 进程是操作系统分配资源和调度的基本单位,它包含了程序的执行状态和所需…

微信小程序媒体查询

在微信小程序中,media媒体查询不支持screen关键字,因为小程序页面是再webview中渲染的,而不是在浏览器中渲染的。 在设置样式时,可以使用 wxss 文件中的 media 规则来根据屏幕宽度或高度设置不同的样式。 device-width:设备屏幕…

redis 性能管理

一、查看 redis 内存使用 info memory 1, 进入 redis 查看 2, redis 外查看 二 内存碎片率 1,used_memory_rss 表示该进程所占物理内存的大小,即为操作系统分配给 Redis 实例的内存大小。 2,used_memory Redis …

手机领域的平台之战

平台应用的模式最早是从手机应用开始的。在管理软件领域,最早是各厂商自己做自己的App。OA厂商、CRM厂商、HR厂商等等,都推自己的APP。现在逐步放弃了自有App,转向小程序。也就是平台之战第一阶段结束,几个大厂干掉了千千万万个小…

git如何正确合并分支

在 Git 中,合并分支是一个常见的操作,它允许你将一个分支的更改集成到另一个分支中。以下是一些正确合并分支的步骤和最佳实践: 合并前需要add和commit -m 提交到本地仓库在进行合并 1. 查看分支状态 在合并之前,最好先查看当前仓…

【智能算法】猎豹优化器(CO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2022年,MA Akbari等人受到自然界中猎豹捕猎行为启发,提出了猎豹优化器(The Cheetah Optimizer,CO)。 2.算法原理 2.1算法思想 CO法对猎…

机器学习的模型校准

背景知识 之前一直没了解过模型校准是什么东西,最近上班业务需要看了一下: 模型校准是指对分类模型进行修正以提高其概率预测的准确性。在分类模型中,预测结果通常以类别标签形式呈现(例如,0或1)&#xf…

Python程序设计 单例模式

1. 单例设计模式 设计模式设计模式 是 前人工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案使用 设计模式 是为了可重用代码、让代码更容易被他人理解、保证代码可靠性单例设计模式目的 —— 让 类 创建的对象&…

mac 上通过命令行挂载NTFS硬盘,使其可以进行读写

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1. 安装 osxfuse 和 ntfs-3g2. 挂载 NTFS 硬盘3. 卸载 NTFS 硬盘4. 自动挂载1. 找出设备UUID2. 编辑 /etc/fstab 文件3. 添加挂载信息4. 保存并退出编辑器5. 重…

【THM】Nmap Advanced Port Scans(高级端口扫描)-初级渗透测试

介绍 本房间是Nmap系列的第三个房间(网络安全简介模块的一部分)。在前两个房间中,我们了解了实时主机发现和基本端口扫描。 Nmap实时主机发现Nmap基本端口扫描Nmap高级端口扫描Nmap后端口扫描在Nmap基本端口扫描中,我们介绍了TCP标志并回顾了TCP 3 路握手。要启动连接,TC…

AcWing刷题-约数个数

约数的个数 代码 # 计数 def f(x)->int:cnt 0i 1while i * i < x:if x % i 0:cnt 1if i * i < x:cnt 1i 1return cntn int(input()) a list(map(int,input().split())) for i in a:print(f(i))

HDFSRPC通信框架参数详解

写在前面 请先阅读HDFSRPC通信框架详解&#xff0c;对整体框架先有一定的了解。 参数列表 参数默认值描述ipc.server.read.connection-queue.size100readeripc.server.read.threadpool.size1readeripc.server.listen.queue.size128Listener:backlogipc.server.tcpnodelaytru…

Generative AI for Beginners

Generative AI for Beginners 微软推出的面向初学者的免费生成式人工智能课程。 课程章节相关教学内容学习目标课程介绍和学习环境设置学习环境配置和课程结构在学习本课程的同时帮助您取得成功生成式人工智能和 LLMs 介绍知识点: 生成式人工智能以及我们如何适应当前的技术格…

蓝桥杯练习——拼出一个未来

选中 index.html 右键启动 Web Server 服务&#xff08;Open with Live Server&#xff09;&#xff0c;让项目运行起来。接着&#xff0c;打开环境右侧的【Web 服务】&#xff0c;就可以在浏览器中看到如下效果&#xff1a; 目标 完善 js/index.js 的 TODO 部分&#xff0c;实…

使用Pointpillar神经网络识别rosbag中的障碍物

PointPillar-ROS-Node https://github.com/MengWoods/pointpillar-ros-node 这个仓库包含一个ROS节点&#xff0c;用于处理点云数据。它使用了PointPillar神经网络模型&#xff0c;允许用户在ROS环境中处理ROSbags中的点云数据。通过简单的命令&#xff0c;用户可以克隆该仓库…

【leetcode】 c++ 数字全排列, test ok

1. 问题 2. 思路 3. 代码实现 #if 0 class Solution { private:vector<int> path; // 满足条件的一个结果 vector<vector<int>> res; // 结果集 void backtracking(vector<int> nums, vector<bool> used){// 若path的个数和nums个数相等&…

Qt控件样式设置其一(常见方法及优缺点)

如果你对Qt有基本的了解&#xff0c;应该知道它的一大优点是跨平台&#xff0c;可以在不同的系统中编译运行。但在我看来&#xff0c;Qt还有另外一个优点&#xff0c;就是制作界面比较方便和灵活&#xff0c;能够实现主流静态效果的桌面应用。&#xff08;如果需要实现比较灵动…

4款免费可用的数据集成平台亮点

在众多免费的数据集成工具中&#xff0c;我们选出了四个平台&#xff0c;它们分别是Apache Nifi、FineDataLink、kettle、ETLCLoud。现在&#xff0c;让我们快速浏览一下这四个平台的亮点。 Apache Nifi&#xff1a; Apache NiFi 是一款强大的数据集成和处理平台&#xff0c;它…

DockerFile启动jar程序

1.创建Dockerfile 在项目的根目录下创建一个名为Dockerfile的文件&#xff0c;并使用文本编辑器打开它。Dockerfile的内容如下&#xff1a; # 基础镜像 FROM openjdk:8-jre # 创建目录 RUN mkdir -p /usr/app/ # 设置工作目录 WORKDIR /usr/app # 将JAR文件复制到容器中,注:…