
达梦数据库基于操作系统的身份验证分为本机验证和远程验证。
本机验证需要将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进行修改,重启数据库服务生效。(vim直接修改dm.ini中的参数可能并不会生效)
基于操作系统的身份验证的准备工作:
基于操作系统本机身份验证登录的语法:
disql as <SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO>
disql @<connect_identifier> as <SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO>
表示登录的用户为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)四个中的一个或者多个所需的条件,如果都不满足则会报错。
1、测试SYSDBA等系统用户操作系统本地验证登录。
1.1 设置ENABLELOCALOSAUTH参数值为1,并重启数据库服务。
SQL> select name,value from v$parameter where name='ENABLE_LOCAL_OSAUTH';

SQL> SP_SET_PARA_VALUE(2,'ENABLE_LOCAL_OSAUTH',1);

重启数据库服务
[dmdba@localhost bin]$ ./DmServiceDMSERVER restart

查看修改后的参数
SQL> select name,value from v$parameter where name='ENABLE_LOCAL_OSAUTH';

1.2操作系统上创建dmdba组,并将执行本地登录的操作系统用户加入到dmdba组。
(1)创建dmdba组
[root@localhost ~]# groupadd -g 10010 dmdba
(2)将操作系统用户加入到dmdba组
本环境达梦数据库软件安装以及维护等使用的是操作系统用户dmdba,所以这里是将dmdba用户加入到dmdba组。如果达梦数据库软件以及维护的操作系统用户不是使用dmdba,而是其他用户,则将其他用户加入到dmdba组。
[root@localhost ~]# usermod -a -G dmdba dmdba[root@localhost ~]# id dmdba

1.3 测试SYSDBA操作系统本地验证登录。
[dmdba@localhost bin]$ ./disql as sysdbaSQL> select user();

[dmdba@localhost bin]$ ./disql @localhost:5236 as sysdbaSQL> select user();

2、配置SYSAUDITOR用户本地操作系统验证登录。
操作步骤与配置SYSDBA步骤相同。
2.1操作系统创建dmauditor组
[root@localhost ~]# groupadd -g 10011 dmauditor
2.2将操作系统用户添加到dmauditor组
本环境达梦数据库软件安装以及维护等使用的是操作系统用户dmdba,所以这里是将dmdba用户加入到dmauditor组。如果达梦数据库软件以及维护的操作系统用户不是使用dmdba,而是其他用户,则将其他用户加入到dmauditor组。
[root@localhost ~]# usermod -a -G dmauditor dmdba[root@localhost ~]# id dmdba

2.3测试SYSAUDITOR基于操作系统本地身份验证登录
[dmdba@localhost bin]$ ./disql as sysauditorSQL> select user;

3、测试普通用户操作系统本地验证登录。
测试使用的操作系统普通用户为user01。
3.1操作系统创建dmusers组
[root@localhost ~]# groupadd -g 10020 dmusers
3.2创建操作系统用户user01并加入到dmusers组
[root@localhost 桌面]# useradd -G dmusers user01[root@localhost 桌面]# passwd user01

[root@localhost 桌面]# id user01

3.3数据库中创建user01数据库用户
SQL> create user user01 identified by Dameng123;
3.4切换到操作系统user01用户,并使用disql登录数据库
注意:操作系统用户user01,需要有能够正常进入到$DM_HOME/bin下执行命令的权限。
[user01@localhost bin]$ ./disql @localhost:5236 as usersSQL> select user();

[user01@localhost bin]$ ./disql as usersSQL> select user;

如果执行登录命令的操作系统用户只有加入了dmusers组中,还可以使用auto类型登录。
[user01@localhost bin]$ ./disql as autoSQL> select user();

以上为本期分享,希望能带给大家帮助。想要了解更多往期干货,可访问页面最下方#达梦技术干货攻略#合集或下方相关分享。在此邀请更多学员参与“达梦技术干货投稿活动”,稿件获选后将在达梦“干货分享”专栏进行发布,欢迎来稿!
相关分享:
【开班通知】第16期DM8-DCA线上培训班招生中(2024年06月12日开班)
【开班通知】DM8-DCP线上培训班招生中(2024年06月17日开班)





