DM提供数据库身份验证模式和外部身份验证模式来保护对数据库访问的安全。数据库身份验证模式需要利用数据库口令,即在创建或修改用户时指定用户口令,用户在登录时输入对应口令进行身份验证;外部身份验证模式支持基于操作系统(OS)的身份验证、LDAP身份验证和KERBEROS身份验证。

本章介绍基于操作系统(OS)的身份验证。

环境说明

数据库版本:DM8
操作系统:银河麒麟V10
相关关键字:DM数据库、基于操作系统的身份验证

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

例如:操作系统用户 dameng 基于 OS 的身份验证登录数据库。

1.在数据库(localhost:5236)中创建一个操作系统的同名用户,并修改 INI 参数。

SQL> CREATE USER dameng IDENTIFIED BY "dameng12345";
SQL> SP_SET_PARA_VALUE(2,'ENABLE_LOCAL_OSAUTH',1);
SQL> COMMIT;

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

2.在操作系统中创建 dmusers 用户组,并将操作系统用户 dameng 添加到dmusers用户组。
Linux 操作系统下:

[dameng@test163 ~]$ sudo groupadd dmusers
[dameng@test163 ~]$ sudo usermod -G dmusers dameng

3.操作系统用户 dameng 基于 OS 的身份验证登录数据库。

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

disql、 dmfldr、 dexp 和 dimp 工具都支持基于操作系统的身份验证登录,具体登录方式可查看各工具操作手册。
dmfldr、dexp和dimp工具的基于操作系统的身份验证,都需要在userid参数中指定使用OS验证的信息,如导入导出SYSDBA用户下的表TEST_I,基于操作系统的身份验证,命令参考如下:

[dameng@test163 bin]$ ./dexp USERID="/@localhost:5247 as users" FILE=db_str.dmp LOG=db_str.log TABLES=sysdba.TEST_I DIRECTORY=/home/dmdba
[dameng@test163 bin]$ ./dimp USERID="/@localhost:5247 as users" FILE=db_str.dmp LOG=db_str.log TABLES=sysdba.TEST_I TABLE_EXISTS_ACTION=replace  DIRECTORY=/home/dmdba

dmfldr快速装载工具基于操作系统的身份验证,命令参考如下:

[dameng@test163 bin]$ ./dmfldr userid="/@localhost:5247 as users" control=\'/home/dmdba/dmdbms/bin/ac.txt\' mode=\'out\'
[dameng@test163 bin]$ cat  ac.txt 
LOAD DATA
INFILE '/home/dameng/test.txt'
INTO TABLE sysdba.TEST_I
FIELDS '|'