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

【干货攻略】达梦数据库基于操作系统本机身份验证登录方式

达梦E学 2024-06-14
701



前提

达梦数据库基于操作系统的身份验证分为本机验证远程验证


本机验证需要将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中的参数可能并不会生效)


本文主要介绍基于操作系统的身份验证在数据库服务器本机上进行登录(即本机验证)。





一、使用说明


基于操作系统的身份验证的准备工作:

1、需要在操作系统上创建4个用户组,分别为:dmdba、dmsso、dmauditor、dmusers,分别对应数据库中的SYSDBA、SYSSSO、SYSAUDITOR、普通用户。如果只是需要SYSDBA用户基于操作系统本地验证登录,则只需要创建dmdba组即可。
2、创建好用户组之后,需要将操作系统用户加入到对应的组。另外,如果是将操作系统用户加入到dmusers组,则数据库中需要存在一个与操作系统用户同名的数据库用户。
3、基于操作系统身份验证登录无需输入数据库用户和密码。
4、操作系统登录几种用户类型说明。
基于操作系统本机身份验证登录的语法:
    disql  as <SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO>
    或者
      disql @<connect_identifier> as <SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO>
      其中:<connect_identifier> 为ip:port或者dm_svc服务名。
      几种类型说明:
      (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)四个中的一个或者多个所需的条件,如果都不满足则会报错。




      二、使用测试


      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 sysdba


                    SQL> select user();

                      [dmdba@localhost bin]$ ./disql @localhost:5236 as sysdba
                      SQL> 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 sysauditor


                            SQL> 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 users


                                      SQL> select user();

                                        [user01@localhost bin]$ ./disql  as users


                                        SQL> select user;

                                        如果执行登录命令的操作系统用户只有加入了dmusers组中,还可以使用auto类型登录。

                                          [user01@localhost bin]$ ./disql  as auto


                                          SQL> select user();



                                          总结


                                          上为本期分享,希望能带给大家帮助。想要了解更多往期干货,可访问页面最下方#达梦技术干货攻略#合集或下方相关分享。在此邀请更多学员参与“达梦技术干货投稿活动”,稿件获选后将在达梦“干货分享”专栏进行发布,欢迎来稿!


                                          相关分享:

                                          【总结帖】2023年达梦技术干货攻略年度合集

                                          【干货攻略】达梦数据库如何调整表空间存储位置

                                          【干货攻略】HAVING和WHERE正确使用

                                          【开班通知】第16期DM8-DCA线上培训班招生中(2024年06月12日开班)

                                          【开班通知】DM8-DCP线上培训班招生中(2024年06月17日开班)



                                          END

                                          达梦知识普及

                                          扫码关注我们
                                          学习共享
                                          知识普及

                                          作者:李文
                                          审核:林夕
                                          排版:达梦培训中心



                                          文章转载自达梦E学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                          评论