基于操作系统的身份验证仅支持本机验证,本机验证需要将 DM 配置文件 dm.ini 的 ENABLE_LOCAL_OSAUTH 参数设置为 1(缺省为 0),该参数为静态参数,数据库管理员 可以使用系统过程 SP_SET_PARA_VALUE 进行修改,但修改后需要重新启动 DM 服务器 才能生效。该参数是手动参数, 手动,不能被动态修改,必须手动修改 dm.ini 参数文件,然后重启才能生效。
当前dm.ini没有配置ENABLE_LOCAL_OSAUTH并默认值为0
追加该参数重启数据库观察到配置并没有生效
删除dm.ini中的ENABLE_LOCAL_OSAUTH之后使用系统过程SP_SET_PARA_VALUE修改
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.607(ms)
SQL> sp_set_para_value(2,'ENABLE_LOCAL_OSAUTH',1);
DMSQL 过程已成功完成
已用时间: 2.456(毫秒). 执行号:701.
重启之后生效
但是观察dm.ini并没有发现ENABLE_LOCAL_OSAUTH,该参数应该是一个隐含参数
基 于 操 作 系 统 的 身 份 验 证 需 要 首 先 将 操 作 系 统 用 户 加 入 到 操 作 系 统 的 dmdba|dmsso|dmauditor 用户组,分别对应数据库的 SYSDBA|SYSSSO|SYSAUDITOR 用户。
如果直接登陆会提示未经授权的用户
[dmdba@dm8-101 ~]$ disql / as sysdba
[-2512]:未经授权的用户.
disql V8
创建dmdba组追加到dmdba用户即可SYSDBA身份登陆
[root@dm8-101 ~]# groupadd dmdba
[root@dm8-101 ~]# usermod -G dmdba dmdba
[root@dm8-101 ~]# id dmdba
uid=1001(dmdba) gid=2001(dinstall) 组=2001(dinstall),2002(dmdba)
[dmdba@dm8-101 ~]$ disql / as sysdba
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.557(ms)
disql V8
SQL> select user;
行号 USER()
---------- ------
1 SYSDBA
已用时间: 0.292(毫秒). 执行号:701.
SQL> select status$ from v$instance
2 ;
行号 STATUS$
---------- -------
1 OPEN
已用时间: 1.079(毫秒). 执行号:702.
也可以将操作系统用户加入到操作系统的dmusers用户组来进行基于操作系统的身 份验证,对应数据库的同名用户,即此时数据库中需要存在一个与操作系统用户同名的用户。
例:
若当前操作系统用户名为 dmtest,则 dmtest 基于操作系统的身份验证登录数 据库的操作步骤如下:
1.在数据库中创建一个操作系统的同名用户
SQL> select username,account_status from dba_users where username='DMTEST';
行号 USERNAME ACCOUNT_STATUS
---------- -------- --------------
1 DMTEST OPEN
已用时间: 9.371(毫秒). 执行号:901.
2.在操作系统中创建 dmusers 用户组,并将操作系统用户 dmtest 添加到 dmusers 用户组
[root@dm8-101 ~]# groupadd dmusers
[root@dm8-101 ~]# usermod -G dmusers dmtest
[root@dm8-101 ~]# id dmtest
uid=1003(dmtest) gid=1003(dmtest) 组=1003(dmtest),2003(dmusers)
登陆数据库,这里要注意disql的权限问题
[dmtest@dm8-101 ~]$ /dm8/dmdbms/bin/disql / as users
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.771(ms)
disql V8
SQL> select user;
行号 USER()
---------- ------
1 DMTEST
已用时间: 0.691(毫秒). 执行号:1001.
注意:基于操作系统的身份验证仅在 DM 安全版本中才提供支持。
文章
阅读量
获赞