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

达梦操作系统的身份验证

原创 手机用户5278 2022-06-30
1820

基于操作系统的身份验证

基于 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 的身份验证,对应数据库的同名用户,即此时数据库中需要存在一个与操作系统用户同名的用户。

这里来探讨一下本机OS身份验证方式

正常的连接方式:

环境变量问题:

su - dmdba

vi ~/.bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

export LANG=zh_CN.UTF8

export DM_INSTALL_TMPDIR=/tmp

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm/dmdbms/dm8/bin"

export DM_HOME="/dm/dmdbms/dm8"

export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH:$HOME/bin --$DM_HOME/tool: 如果你的环境变量里面没有,就加上这段,可以免去进入安装目录下的bin目录里执行程序的问题

--没有配置OS系统身份认证的登录方式

disql useid/password@ip:port

OR

disql useid/password@servicename:port --其中servicename为本机dm_svr.conf文件中配置的连接服务名,在我的其他文章中有详细的介绍,这里就不去赘述。

[dmdba@dmtest01 ~]$ disql sysdba/dameng123@LOCALHOST:5236

服务器[LOCALHOST:5236]:处于普通打开状态

登录使用时间 : 1.574(ms)

disql V8

SQL>

SQL>

SQL>

SQL> select user();

行号 USER()

---------- ------

1 SYSDBA

已用时间: 3.007(毫秒). 执行号:14000.

SQL> select * from v$dm_ini where para_name='ENABLE_LOCAL_OSAUTH';

行号 PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE DEFAULT_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION PARA_TYPE

---------- ------------------- ---------- --------- --------- ------------- ------- ---------- ---------- --------------------------------------------------------------- ---------

1 ENABLE_LOCAL_OSAUTH 0 0 1 0 N 0 0 Whether to enable local authorization by operating system users READ ONLY

已用时间: 6.049(毫秒). 执行号:14100.

SQL> alter system set 'ENABLE_LOCAL_OSAUTH' = 1 spfile; --修改参数值,由于该参数是静态参数,因此需要重启数据开能生效。

DMSQL 过程已成功完成

已用时间: 0.875(毫秒). 执行号:14102.

SQL> alter system switch logfile; --不要急于关闭数据库,先做先归档切换。

操作已执行

已用时间: 0.239(毫秒). 执行号:0.

SQL> /

操作已执行

已用时间: 0.391(毫秒). 执行号:0.

SQL> /

操作已执行

已用时间: 0.342(毫秒). 执行号:0.

SQL> checkpoint(100); --再做下全量的checkpoint,将脏数据去部落盘。

DMSQL 过程已成功完成

已用时间: 1.251(毫秒). 执行号:14103.

SQL> /

DMSQL 过程已成功完成

已用时间: 1.110(毫秒). 执行号:14104.

SQL> /

DMSQL 过程已成功完成

已用时间: 0.796(毫秒). 执行号:14105.

SQL> shutdown immediate; --关闭数据库

操作已执行

已用时间: 0.195(毫秒). 执行号:0.

SQL> exit

[dmdba@dmtest01 ~]$ DmServicedmedudb start

Starting DmServicedmedudb: [ OK ]

[dmdba@dmtest01 ~]$

--操作系统验证的登录方式

./disql / as <SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO>

or

./disql /@servicename:port as <SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO>

其中:servicename:port 为ip或者dm_svc服务名

基于 OS 的身份验证需要首先将操作系统用户加入到操作系统的dmdba|dmsso|dmauditor 用户组,分别对应数据库的 SYSDBA|SYSSSO|SYSAUDITOR用户。如果是OS中的普通用户,需要在OS中创建dmusers组,并加入该组,在生成环境下,系统中不会有过多的用户,所以不建议设置普通用户,因为普通用户要有访问达梦安装目录下的BIN目录,并且有执行权限才能登录。配置方法与其他用户类似,这里就不演示。

(1) SYSDBA

表示登录的用户为SYSDBA用户。

登录命令: ./disql / as sysdba 或者 ./disql /@ip:port as sysdba

需要执行登录的操作系统用户属于dmdba组。

(2) SYSSSO (用于安全版数据库,标准版和企业版可以不用) --不演示

表示登录的用户为SYSSSO用户。

登录命令:./disql / as syssso 或者 ./disql /@localhost:5236 as sysdba

需要执行登录的操作系统用户属于dmsso组。

(3) SYSAUDITOR

表示登录的用户为SYSSSO用户。

登录命令:./disql / as sysauditor 或者 ./disql /@localhost:5236 as sysauditor

需要执行登录的操作系统用户属于dmauditor组。

(4) users

表示登录的用户类型为普通用户,非数据库系统用户。

登录命令:./disql / as users 或者 ./disql /@localhost:5236 as users

需要执行登录的操作系统用户属于dmusers组,且数据库中存在和执行登录的操作系统普通用户同名的数据库用户(不推荐)。

(5) AUTO

表示按顺序自动匹配数据库用户类型,即按照语法中的“SYSDBA|SYSSSO|SYSAUDITOR|USERS”顺序自动匹配登录的数据库用户类型。

命令:./disql / as auto 或者 ./disql /@localhost:5236 as auto

需要执行登录操作的操作系统用户满足上述(1) (2) (3) (4)四个中的一个或者多个所需的条件,如果都不满足则会报错。

--检查参数是否修改成功

[dmdba@dmtest01 ~]$ disql sysdba/dameng123

服务器[LOCALHOST:5236]:处于普通打开状态

登录使用时间 : 2.855(ms)

disql V8

SQL> select name,value from v$parameter where name='ENABLE_LOCAL_OSAUTH';

行号 NAME VALUE

---------- ------------------- -----

1 ENABLE_LOCAL_OSAUTH 1

已用时间: 10.670(毫秒). 执行号:500.

SQL>

--创建组dmdba|dmauditor

su - root

groupadd -g 60000 dmdba

groupadd -g 60010 dmauditor

usermod -a -G dmdba dmdba

usermod -a -G dmauditor dmdba

[root@dmtest01 ~]# id dmdba

uid=66000(dmdba) gid=66000(dinstall) groups=66000(dinstall),60000(dmdba),60010(dmauditor)

--测试

[dmdba@dmtest01 ~]$ disql / as sysdba

服务器[LOCALHOST:5236]:处于普通打开状态

登录使用时间 : 1.382(ms)

disql V8

SQL> select user();

行号 USER()

---------- ------

1 SYSDBA

已用时间: 1.376(毫秒). 执行号:700.

SQL> exit

[dmdba@dmtest01 ~]$ disql / as sysauditor

服务器[LOCALHOST:5236]:处于普通打开状态

登录使用时间 : 1.246(ms)

disql V8

SQL> select user();

行号 USER()

---------- ----------

1 SYSAUDITOR

已用时间: 2.348(毫秒). 执行号:800.

SQL>

DM 的 disql、dmfldr、dmdbg、dexp 和 dimp 等工具都支持基于操作系统的身份验证登录,具体登录方式可查看https://eco.dameng.com/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论