CN105117660B - 一种数据库系统启动方法和设备 - Google Patents

一种数据库系统启动方法和设备 Download PDF

Info

Publication number
CN105117660B
CN105117660B CN201510471794.4A CN201510471794A CN105117660B CN 105117660 B CN105117660 B CN 105117660B CN 201510471794 A CN201510471794 A CN 201510471794A CN 105117660 B CN105117660 B CN 105117660B
Authority
CN
China
Prior art keywords
parameter
password
parameter value
administrator
database systems
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510471794.4A
Other languages
English (en)
Other versions
CN105117660A (zh
Inventor
顾伟涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Netease Shuzhifan Technology Co ltd
Original Assignee
Hangzhou Langhe Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Langhe Technology Co Ltd filed Critical Hangzhou Langhe Technology Co Ltd
Priority to CN201510471794.4A priority Critical patent/CN105117660B/zh
Publication of CN105117660A publication Critical patent/CN105117660A/zh
Application granted granted Critical
Publication of CN105117660B publication Critical patent/CN105117660B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明的实施方式提供了一种数据库系统启动方法和设备。该方法包括:接收启动指示,并启动数据库系统;在启动过程中,读取数据库配置文件中的管理员密码参数;将管理员密码参数及其参数值加载到内存中;其中,管理员密码参数为预先为数据库系统增加的密码参数,并且管理员密码参数所对应的访问权限被设置为大于业务密码参数所对应的访问权限。通过设置管理员密码参数,本发明的方法使得数据库系统的不同用户具有对应的访问权限,从而显著地提高了数据库系统的安全性,为用户带来了更好的体验。此外,本发明的实施方式提供了一种数据库系统启动设备。

Description

一种数据库系统启动方法和设备
技术领域
本发明的实施方式涉及数据库领域,更具体地,本发明的实施方式涉及一种数据库系统启动方法和设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着互联网移动通信、物联网的发展,数据不断爆炸式的增长,人类进入了大数据时代。数据库系统对于互联网的发展来说更是必不可少的关键技术,如何保证数据库系统中数据的安全也成为亟待解决的问题。
现有技术中,很多数据库系统的认证是轻量级的,也就是说,这种数据库系统不会区分不同用户的访问权限,而是为所有用户(包括管理员和普通用户)设置相同的访问权限,这样一来所有用户都可以登录数据库系统并且可以对数据库执行任何操作,包括读写等基本操作、以及修改登录密码等管理类型操作。常见的轻量级认证数据库系统例如:redis数据库系统,在使用该数据库系统时,无论管理员还是普通用户,均使用该数据库的业务密码进行登录和操作,且操作权限相同、均可以执行任何类型的操作。
可见,这种轻量级认证数据库系统的每个用户都可以使用业务密码登录该数据库系统并执行任何类型的操作,这无疑为数据库系统中存储的数据带来了安全隐患,并且不利于数据库系统管理员对数据库进行灵活管理。
发明内容
出于轻量级认证数据库系统为每个用户均提供相同的访问权限的原因,现有技术中轻量级认证数据库系统的每个用户都可以登录该数据库系统并执行任何操作,为数据库中存储的数据带来的安全隐患。
因此在现有技术中,轻量级认证数据库系统为每个用户均提供相同的访问权限这是非常令人烦恼的过程。
为此,非常需要一种改进的权限控制方法,以使数据库系统的不同用户具有对应的访问权限,通过权限控制来保证数据库的安全性。
在本上下文中,本发明的实施方式期望提供一种数据库系统启动方法和设备。
在本发明实施方式的第一方面中,提供了一种数据库系统启动方法,包括:
接收启动指示,并启动所述数据库系统;
在启动过程中,读取数据库配置文件中的管理员密码参数;
将所述管理员密码参数及其参数值加载到内存中;
其中,所述管理员密码参数为预先为所述数据库系统增加的密码参数,并且所述管理员密码参数所对应的访问权限被设置为大于业务密码参数所对应的访问权限。
在本发明实施方式的第二方面中,提供了一种数据库系统启动设备,包括:
启动模块,用于接收启动指示,并启动所述数据库系统;
读取模块,用于在所述启动模块启动所述数据库系统的过程中,读取数据库配置文件中的管理员密码参数;
加载模块,用于将所述管理员密码参数及其参数值加载到内存中;
其中,所述管理员密码参数为预先为所述数据库系统增加的密码参数,并且所述管理员密码参数所对应的访问权限被设置为大于业务密码参数所对应的访问权限。
根据本发明实施方式的数据库系统启动方法和设备,可以预先在数据库配置文件中增加管理员密码参数,并且该管理员密码参数所对应的访问权限被设置为大于业务密码参数所对应的访问权限,在数据库系统启动过程中,将增加的管理员密码参数的参数值加载到内存中,以便后续进行权限控制时使用,可见,本发明实施例为轻量级认证数据库系统增加了管理员密码参数,对管理员权限和普通用户权限进行了区分,实现了轻量级认证数据库的访问权限控制,显著地增加了数据库的安全性,并且有利于管理员对数据库的灵活管理,为用户带来了更好的体验。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的应用场景示意图;
图2示意性地示出了根据本发明一实施例的一种数据库系统启动方法的流程示意图;
图3示意性地示出了根据本发明又一实施例的一种数据库系统启动方法的流程示意图;
图4示意性地示出了根据本发明一实施例的一种数据库系统启动设备的结构示意图;
图5示意性地示出了根据本发明又一实施例的一种数据库系统启动设备的结构示意图;
图6示意性地示出了根据本发明实施例的一种数据库系统启动设备的程序产品示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种数据库系统启动方法和设备。
在本文中,需要理解的是,所涉及的术语中:
1.管理员密码参数:预先为数据库系统增加的密码参数,其参数值为具有管理员访问权限的用户登录数据库系统时使用的登录密码,并且管理员密码参数所对应的访问权限被设置为大于业务密码参数所对应的访问权限。
2.业务密码参数:现有技术中,业务密码参数为数据库系统中设置的供所有用户使用、且访问权限为所有访问权限的密码参数,本发明实施例中,业务密码参数对应的访问权限被设置为小于管理员密码参数所对应的访问权限,可理解为普通用户访问权限。
3.单向加密:只能单向将明文加密为密文,无法逆向将密文解密为明文。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,现有技术中轻量级认证数据库系统为每个用户均提供相同的访问权限,导致轻量级认证数据库系统的每个用户都可以登录该数据库系统并执行任何操作,为数据库中存储的数据带来的安全隐患。现有技术中缺乏一种改进的权限控制方法,以使数据库系统的不同用户具有对应的访问权限,通过权限控制来保证数据库的安全性。
为此,本发明提供了一种数据库系统启动方法和设备,数据库系统启动的过程可以包括:接收启动指示,并启动数据库系统;在启动过程中,读取数据库配置文件中的管理员密码参数;将管理员密码参数及其参数值加载到内存中;其中,管理员密码参数为预先为数据库系统增加的密码参数,并且管理员密码参数所对应的访问权限被设置为大于业务密码参数所对应的访问权限。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1,数据库系统可以安装在物理设备101上(下面将安装有数据库系统的物理设备101称为数据库系统101),终端设备102~终端设备105可以通过网络与数据库系统101连接,并访问数据库系统101。其中,网络可以为局域网、广域网、移动互联网等;终端设备102~终端设备105可以为便携设备(例如:手机、平板、笔记本电脑等),也可以为个人电脑(PC,Personal Computer)。
示例性方法
下面结合图1的应用场景,参考图2~图3来描述根据本发明示例性实施方式的用于数据库系统启动的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
图2为本发明提供的一种数据库系统启动方法的一实施例的流程示意图,在本发明提供的一种数据库系统启动方法的一实施例中,该数据库系统被配置有一个业务密码参数;普通用户均使用该一个业务密码参数。业务密码参数对应的访问权限可以包括读权限、写权限、设置/重置自身使用业务密码参数的参数值的权限。
下面参照该图对本发明实施例提供的一种数据库系统启动方法的流程进行描述。
如图2所示,本发明实施例提供的一种数据库系统启动方法,包括如下步骤:
S201、接收启动指示,并启动数据库系统。
S202、在启动过程中,读取数据库配置文件中的管理员密码参数。
其中,管理员密码参数为预先为数据库系统增加的密码参数,并且管理员密码参数所对应的访问权限被设置为大于业务密码参数所对应的访问权限。
进一步地,数据库系统配置有数据库配置文件,在数据库配置文件中可以保存数据库系统的一些配置参数,例如:数据库系统运行时需要的变量等,不同的数据库系统对应的数据库配置文件中包含的内容可能不同。本发明实施例中,为数据库系统增加的管理员密码参数可以保存在数据库系统的数据库配置文件中。管理员密码参数可以认为是用于保存具有管理员权限的用户使用的密码的变量,管理员密码参数的参数值可以为具有管理员权限的用户使用的密码,业务密码参数可以认为是用于保存具有普通用户权限的用户使用的密码的变量,业务密码参数的参数值可以为具有普通用户权限的用户使用的密码。
下面以远程字典服务(redis,remote dictionary server)数据库系统为例进行说明:
redis数据库系统的数据库配置文件可以为redis.cnf文件,redis数据库系统在启动过程中,会读取redis.cnf文件,将redis.cnf文件中的各参数及其参数值读取到内存中。现有技术中,redis数据库系统仅设置有一个业务密码(即requirepass),使用redis数据库系统的所有用户均使用该业务密码,并且该业务密码对应的访问权限为redis数据库系统的所有访问权限,这就使得redis数据库系统的安全性无法得到保障。本发明实施例中,在业务密码参数的基础上,增加管理员密码参数,与现有技术不同,本发明实施例中业务密码参数对应的访问权限不再是redis数据库系统的所有访问权限,而是redis数据库系统的基本访问权限(例如:读权限、写权限,本实施例中还可以包括设置/重置用户使用的业务密码参数的参数值的权限),而增加的管理员密码参数被设置为具有比业务密码参数所对应的访问权限大的访问权限,也就是说,增加的管理员密码参数除了具有业务密码参数对应的访问权限之外,还可以具有更多的管理类访问权限。这样,为数据库系统的不同用户设置不同的访问权限,可以通过权限控制来保证数据库的安全性。
具体实施时,可以在redis数据库系统头文件(redis-版本号/src/redis.h)中定义管理员密码参数变量(adminpass),这样,整个redis数据库系统就能够识别该管理员密码参数,即使redis.cnf文件中不存在adminpass的相关设置,redis数据库系统也能够默认该参数的参数值为空。
进一步地,预先为数据库系统增加的管理员密码参数的初始参数值为空。而不管增加的管理员密码参数的参数值是否为空,管理员密码参数及其参数值均可以保存在redis.cnf文件中。
进一步地,步骤S203~步骤S205为将管理员密码参数及其参数值加载到内存中的步骤,也就是说,在数据库系统启动过程中,数据库系统调用对应的函数,触发步骤S203~步骤S205的加载流程:
S203、判断管理员密码参数的参数值是否为空;若不为空,进入步骤S204,否则,进入步骤S205。
S204、若管理员密码参数的参数值能够通过合法性检查,则将管理员密码参数及其参数值加载到内存中。进入步骤S206。
本步骤中,当管理员密码参数的参数值不为空时,在将该参数值加载到内存中之前,可以对该参数值进行合法性检查,例如:该参数值的长度是否超过预设最大长度等,若能够通过合法性检查则将管理员密码参数及其参数值加载到内存中,否则,报错退出。
进一步地,将管理员密码参数及其参数值加载到内存中,可以在后续管理员登录数据库系统或者进行权限控制时,能够很快的获取到管理员密码参数的参数值,提高处理效率。
S205、将管理员密码参数及其为空的参数值加载到内存中。
针对将管理员密码参数及其参数值加载到内存中的步骤,以redis数据库系统为例,redis-版本号/src/config.c文件中的loadServerConfigFrom-String(char*config)函数可以用于在redis数据库系统启动过程中,读取redis.cnf文件中的相关数据(包括管理员密码参数及其参数值)并加载到内存中。具体实施时可以通过在该函数中增加步骤S203~步骤S205对应的逻辑分支,实现管理员密码参数及其参数值的读取和加载。
进一步地,在首次启动数据库系统时,管理员密码参数和业务密码参数的参数值可以均为空,后续需要在登录数据库系统后由用户在线进行赋值。
进一步地,步骤S206~步骤S212为数据库系统启动之后,用户(包括管理员和普通用户)登录数据库系统的流程,也就是说,在数据库系统完成启动之后,当用户在数据库系统登录界面输入登录密码进行登录时,数据库系统调用对应函数,触发步骤S206~步骤S212的登录流程:
S206、接收登录数据库系统的登录请求,以及输入的登录密码。
S207、判断管理员密码参数的参数值以及业务密码参数的参数值是否均不为空;若是,进入步骤S208,否则,进入步骤S212。
本发明实施例中,在对管理员密码参数的参数值和业务密码参数的参数值进行设置时,可以认为将二者参数值均设置为空或者均设置为不为空,并且在均设置为不为空时二者参数值不同。
S208、调用用于加密的密码转换函数,采用预设加密算法对输入的登录密码进行单向加密。
以redis数据库系统为例,可以在redis-版本号/src/redis.c文件中增加的pass_md5(char*pass)函数,该函数可以用于将明文“*pass”单向转换成密文。本发明实施例中,可以通过该函数,在用户登录redis数据库系统输入密码时,单向将该密码的明文转换成密文,并且可以采用单向加密算法作为预设加密算法,也就是说,只能单向将明文加密成密文,而无法逆向将密文解密成明文,例如:md5算法。采用单向加密的方法对明文加密,能够避免将密文恢复成明文,提高了安全性。
S209、调用用于获取密码参数的参数值的获取函数,从内存中获取加密的密码参数的参数值。
其中,密码参数包括管理员密码参数和业务密码参数。
进一步地,从后续的设置/重置密码参数的流程可知,设置/重置的密码参数对应的参数值时,会采用预设加密算法将参数值进行加密并保存在数据库配置文件中。在数据库启动过程中,会将管理员密码参数和业务密码参数及其分别对应的加密的参数值加载到内存中,因此,本步骤中,可以直接从内存中获取加密的密码参数的参数值。
以redis数据库系统为例,redis-版本号/src/config.c文件中的configGetCommand(redisClient*c)函数可以用于获取内存中维护的各种参数的参数值。针对新增的管理员密码参数(adminpass),具体实施时,可以增加如下逻辑分支:在获取adminpass的参数值时,判断该参数值是否为空,若非空则返回该参数值。当数据库配置文件中保存的adminpass的参数值为密文时,则获取到加密的adminpass的参数值。
进一步地,步骤S208和步骤S209的执行没有严格的先后顺序。
S210、调用用于对登录密码进行认证的密码认证函数,将加密的登录密码与获取的加密的密码参数的参数值进行匹配。
本步骤中,为了对用户输入的登录密码进行验证,可以将加密后的用户输入的登录密码与预先保存在数据库配置文件中的、并且在数据库系统启动时加载到内存中的加密的密码参数的参数值进行匹配。只要存在任意密码参数的参数值与用户输入的登录密码匹配,则可以确定用户登录成功。
以redis数据库系统为例,redis-版本号/src/redis.c文件中的authCommand(redisClient*c)函数可以用于用户(包括管理员和普通用户)登录redis数据库系统时,进行登录权限验证。具体实施时,可以在该函数中增加逻辑分支:将加密后的输入登录密码与从内存中获取的adminpass和requirepass分别进行匹配,当存在一个能够匹配成功时,确定登录成功,否则,确定登录失败。
S211、当加密的登录密码与获取的任一参数值匹配成功时,确定登录成功。进入步骤S213。
进一步地,在用户登录成功之后,可以将加密的登录密码维护在内存中,以便后续进行权限控制时能够快速获取,提高处理效率。
S212、直接确定登录成功。
本发明实施例中,由于首次启动数据库系统时,管理员密码参数和业务密码参数的参数值均为空,那么,用户(包括管理员和普通用户)首次登录数据库系统时可以使用空的密码直接登录。并可以在登录成功后设置自身下次登录使用的密码。
进一步地,在数据库系统启动之后,当管理员密码参数或者业务密码参数的参数值为空时,用户可以通过步骤S213~步骤S216对自身使用密码参数的参数值进行设置,当管理员密码参数或者业务密码参数的参数值不为空时,用户也可以通过步骤S213~步骤S216对自身使用密码参数的参数值进行重置,也就是说,当用户调用对应的对自身使用的密码参数的参数值进行设置/重置的命令时,数据库系统调用相应的函数,触发步骤S213~步骤S216的参数值设置/重置流程:
S213、接收已登录用户发出的设置或重置密码参数的参数值的设置指示,以及输入的参数值。
其中,密码参数为管理员密码参数,或者业务密码参数。
S214、调用用于对密码参数进行设置的函数,并将通过合法性检查的参数值设置为对应密码参数的参数值。
本步骤中,已登录用户可以设置/重置自己使用的密码,也就是说,管理员可以设置/重置管理员密码参数的参数值,普通用户可以设置/重置业务密码参数的参数值。
以redis数据库系统为例,redis-版本号/src/config.c文件中的configSetCommand(redisClient*c)函数可以用于用户(包括管理员和普通用户)登录redis数据库系统之后,通过调用密码设置/重置命令,为对应的密码参数设置对应的参数值。并且,在将用户输入的参数值设置为对应密码参数的参数值之前,会对参数值进行合法性检查,例如:参数值长度是否符合预设最大长度,当参数值通过合法性检查时,将参数值设置为对应密码参数的参数值。
S215、调用用于加密的密码转换函数,采用预设加密算法对参数值进行单向加密,并将加密后的参数值维护在内存中。
本步骤中,对于已登录用户输入的参数值,不会直接将明文存储在数据库配置文件中以及维护在内存中,而是对输入的明文参数值进行加密,将加密后的密文参数值存储在数据库配置文件中以及维护在内存中,提高了数据库系统的安全性。
进一步地,由于数据库系统在启动过程中已经将从数据库配置文件中读取的管理员密码参数及其参数值,以及业务密码参数及其参数值加载到内存中,本步骤中,在设置或重置了对应密码参数的参数值并且加密之后,维护在内存中的新的参数值可以将对应密码参数的已经加载到内存中的参数值进行覆盖,后续的一些流程中,例如:权限控制流程,使用的对应密码参数的参数值为该设置或重置之后的新的参数值。
以redis数据库系统为例,redis-版本号/src/redis.c文件中增加的pass_md5(char*pass)函数可以用于将明文“*pass”单向转换成密文,本发明实施例中,通过该函数,在用户设置/重置对应密码参数的参数值时,单向将该参数值的明文转换成密文,可以采用单向加密算法作为预设加密算法,例如:md5算法。采用单向加密的方法对明文加密,能够避免将密文恢复成明文,更好的提高了安全性。
本步骤中,将加密后的参数值维护在内存中便于后续的操作(例如权限控制)中对该参数值的获取,提高了处理效率。
S216、调用用于执行刷盘操作的刷盘函数,将加密后的参数值对应保存到数据库配置文件中。
本步骤中,刷盘操作可以理解为保存到磁盘的操作,即将设置或重置后加密的对应密码参数的参数值保存到数据库配置文件中。
以redis数据库系统为例,redis-版本号/src/config.c文件中的rewriteConfig(char*path)函数可以用于在用户(包括管理员和普通用户)执行刷盘操作时,将加密后的参数值保存到数据库配置文件(redis.cnf)中。针对增加的管理员密码参数,可以在该函数中增加用于保存管理员密码参数对应的参数值的逻辑分支:若输入的管理员密码参数的参数值不为空,则将该参数值保存在redis.cnf中。
进一步地,步骤S217~步骤S222为数据库系统接收到预设类型操作时进行权限控制的步骤,也就是说,当用户(包括管理员和普通用户)调用预设类型操作时,数据库系统调用对应的函数,触发步骤S217~步骤S222的权限控制流程:
S217、接收已登录用户发出的对数据库系统的操作指示。
S218、判断S217中接收的操作指示所指示的操作是否为预设类型操作;若是,进入步骤S219,否则,进入步骤S222。
进一步地,预设类型操作可以为管理员具有操作权限而普通用户不具有操作权限的管理类操作。
S219、调用用于获取密码参数的参数值的获取函数,从内存中获取加密的管理员密码参数的参数值以及加密的已登录用户当前登录数据库系统使用的登录密码。
进一步地,内存中维护有登录密码,且该登录密码为采用预设加密算法将用户登录数据库系统时输入的登录密码加密后的登录密码;内存中也维护有采用同样的预设加密算法加密的管理员密码参数的参数值,本步骤中,可以直接从内存中获取该登录密码和管理员密码参数的参数值。
以redis数据库系统为例,可以参见步骤S209,调用configGet-Command(redisClient*c)函数从内存中获取加密的管理员密码参数的参数值以及加密的已登录用户当前登录数据库系统使用的登录密码。
S220、调用用于对登录密码进行认证的密码认证函数,将S219中获取的加密的登录密码与加密的管理员密码参数的参数值进行匹配。
以redis数据库系统为例,可以参见步骤S210,调用authCommand-(redisClient*c)函数,并在该函数中增加逻辑分支:将获取的加密的登录密码与加密的管理员密码参数的参数值进行匹配,并在匹配成功时,按照S217中接收的操作指示对数据库系统进行操作。
S221、若匹配成功,则按照S217中接收的操作指示对数据库系统进行操作。本流程结束。
可见,本发明实施例增加的权限控制流程,当用户发出对数据库的操作指示并且该操作指示所指示的操作为预设类型操作时,首先判断用户的权限(即用户使用的登录密码与管理员使用的登录密码是否匹配),当确定用户具有管理员权限时(匹配时),才允许用户按照发出的操作指示对数据库进行操作,而不是允许具有不同权限的所有用户均能够对数据库执行预设类型操作。本发明实施例通过在预设类型操做之前增加对用户权限判断的步骤,实现了轻量级认证数据库的访问权限控制,对于预设类型操作仅允许具有管理员权限的用户进行操作,从而在修改代码量小的前提下,显著地增加了数据库的安全性,并且有利于管理员对数据库的灵活管理,为用户带来了更好的体验。
本步骤中,若匹配不成功,则认为当前发出对数据库系统的操作指示的用户不具有对数据库系统进行该操作指示所指示操作的权限,那么,禁止用户按照S217中接收的操作指示对数据库系统进行操作。
进一步地,也可以将加密的已登录用户当前登录数据库系统使用的登录密码与业务密码参数的参数值进行比对,由于用户为已登录用户,在登录时已经通过了密码验证,那么该用户如果不是管理员就是普通用户,如果登录密码与业务密码参数的参数值不匹配,则可以确定该登录密码与管理员密码参数的参数值匹配,即该用户具有管理员权限,步骤S219~步骤S221还可以被步骤S2191~步骤S2211代替:
S2191、调用用于获取密码参数的参数值的获取函数,从内存中获取加密的所述业务密码参数的参数值以及加密的所述已登录用户当前登录所述数据库系统使用的登录密码;
S2201、调用用于对登录密码进行认证的密码认证函数,将获取的加密的登录密码与加密的所述业务密码参数的参数值进行匹配;
S2211、若匹配不成功,则按照S217中接收的操作指示对所述数据库系统进行操作。
步骤S2211中,若匹配成功,则认为当前发出对数据库系统的操作指示的用户不具有对数据库系统进行该操作指示所指示操作的权限,那么,禁止用户按照S217中接收的操作指示对数据库系统进行操作。
针对redis数据库系统中步骤S2191~步骤S2211涉及到的函数可以参见步骤S219~步骤S221中的相关解释,这里不再赘述。
S222、直接按照S217中接收的操作指示对数据库系统进行操作。
进一步地,步骤S213~步骤S216的执行与步骤S217~步骤S222的执行没有严格的先后顺序。
图3为本发明提供的一种数据库系统启动方法的又一实施例的流程示意图,在本发明提供的一种数据库系统启动方法的又一实施例中,业务密码参数为一个,普通用户均使用该一个业务密码参数。并且只有具有管理员权限的用户才能够对业务密码参数的参数值以及管理员密码参数的参数值进行设置/重置。业务密码参数对应的访问权限可以包括读权限、写权限,也就是说,对于读权限、写权限之外的权限均需要进行权限控制;
下面参照该图对本发明实施例提供的又一种数据库系统启动方法的流程进行描述。图3中与图2中对应步骤的解释可以参见图2中对应步骤,这里不再赘述。
如图3所示,本发明实施例提供的一种数据库系统启动方法,包括如下步骤:
S301、接收启动指示,并启动数据库系统。
S302、在启动过程中,读取数据库配置文件中的管理员密码参数。
其中,管理员密码参数为预先为数据库系统增加的密码参数,并且管理员密码参数所对应的访问权限被设置为大于业务密码参数所对应的访问权限。
进一步地,预先为数据库系统增加的管理员密码参数的初始参数值为空。
进一步地,步骤S303~步骤S305为将管理员密码参数及其参数值加载到内存中的步骤,也就是说,在数据库系统启动过程中,数据库系统调用对应的函数,触发步骤S303~步骤S305的加载流程:
S303、判断管理员密码参数的参数值是否为空;若不为空,进入步骤S304,否则,进入步骤S305。
S304、若管理员密码参数的参数值能够通过合法性检查,则将管理员密码参数及其参数值加载到内存中。进入步骤S306。
S305、将管理员密码参数及其为空的参数值加载到内存中。
进一步地,步骤S306~步骤S312为数据库系统启动之后,用户(包括管理员和普通用户)登录数据库系统的流程,也就是说,在数据库系统完成启动之后,当用户在数据库系统登录界面输入登录密码进行登录时,数据库系统调用对应函数,触发步骤S306~步骤S312的登录流程:
S306、接收登录数据库系统的登录请求,以及输入的登录密码。
S307、判断管理员密码参数的参数值以及业务密码参数的参数值是否均不为空;若是,进入步骤S308,否则,进入步骤S312。
本发明实施例中,在对管理员密码参数的参数值和业务密码参数的参数值进行设置时,可以认为将二者参数值均设置为空或者均设置为不为空,并且在均设置为不为空时二者参数值不同。
S308、调用用于加密的密码转换函数,采用预设加密算法对输入的登录密码进行单向加密。
S309、调用用于获取密码参数的参数值的获取函数,从内存中获取加密的密码参数的参数值。
其中,密码参数包括管理员密码参数和业务密码参数。
进一步地,数据库配置文件中记录的管理员密码参数的参数值以及业务密码参数的参数值可以为采用与S308中采用的相同的预设加密算法加密后的参数值。
S310、调用用于对登录密码进行认证的密码认证函数,将加密的登录密码与获取的加密的密码参数的参数值进行匹配。
S311、当加密的登录密码与获取的任一参数值匹配成功时,确定登录成功。进入步骤S313。
进一步地,在用户登录成功之后,可以将加密的登录密码维护在内存中,以便后续进行权限控制时能够快速获取,提高处理效率。
S312、直接确定登录成功。
进一步地,步骤S313~步骤S318为数据库系统接收到预设类型操作时进行权限控制的步骤,也就是说,当用户(包括管理员和普通用户)调用预设类型操作时,数据库系统调用对应的函数,触发步骤S313~步骤S318的权限控制流程:
S313、接收已登录用户发出的对数据库的操作指示。
本步骤中,已登录用户发出的对数据库的操作指示可以为已登录用户发出的设置或重置密码参数的参数值的设置指示,以及输入的参数值,其中,密码参数为管理员密码参数,或者业务密码参数。
S314、判断S313中接收的操作指示所指示的操作是否为预设类型操作;若是,进入步骤S315,否则,进入步骤S318。
进一步地,预设类型操作可以为管理员具有操作权限而普通用户不具有操作权限的管理类操作,本实施例中,预设类型操作可以为设置或重置密码参数的参数值的操作,其中,密码参数为管理员密码参数,或者业务密码参数。也就是说,无论是管理员使用的管理员密码参数的参数值,还是普通用户使用的业务密码参数的参数值,均只有具有管理员权限的用户才能设置或重置。
S315、调用用于获取密码参数的参数值的获取函数,从内存中获取加密的管理员密码参数的参数值以及加密的已登录用户当前登录数据库系统使用的登录密码。
S316、调用用于对登录密码进行认证的密码认证函数,将S315中获取的加密的登录密码与加密的管理员密码参数的参数值进行匹配。
S317、若匹配成功,则按照S313中接收的操作指示对数据库系统进行操作。本流程结束。
进一步地,当S313接收到的操作指示为已登录用户发出的设置或重置密码参数的参数值的设置指示,以及输入的参数值时,本步骤中“按照S313中接收的操作指示对数据库系统进行操作”可以具体实施为步骤一~步骤三:
步骤一、调用用于对密码参数进行设置的函数,并将通过合法性检查的参数值设置为对应密码参数的参数值;
步骤二、调用用于加密的密码转换函数,采用预设加密算法对参数值进行单向加密,并将加密后的参数值维护在内存中;
步骤三、调用用于执行刷盘操作的刷盘函数,将加密后的参数值对应保存到数据库配置文件中。
进一步地,当数据库系统接收到发出的设置或重置密码参数的参数值的设置指示,且确定发出该设置指示的用户具有管理员权限时,可以调用对应函数,触发步骤一~步骤三的执行。在设置或重置了对应密码参数的参数值并且加密之后,维护在内存中的新的参数值可以将对应密码参数的已经加载到内存中的参数值进行覆盖,后续的一些流程中,使用的对应密码参数的参数值为该设置或重置之后的新的参数值。
进一步地,步骤S315~步骤S317还可以被步骤S3151~步骤S3171代替:
S3151、调用用于获取密码参数的参数值的获取函数,从内存中获取加密的所述业务密码参数的参数值以及加密的所述已登录用户当前登录所述数据库系统使用的登录密码;
S3161、调用用于对登录密码进行认证的密码认证函数,将获取的加密的登录密码与加密的所述业务密码参数的参数值进行匹配;
S3171、若匹配不成功,则按照S313中接收的操作指示对数据库系统进行操作。
本步骤中,若匹配成功,则认为当前发出对数据库系统的操作指示的用户不具有对数据库系统进行该操作指示所指示操作的权限,那么,禁止用户按照S217中接收的操作指示对数据库系统进行操作。
S318、直接按照S313中接收的操作指示对数据库系统进行操作。
示例性设备
在介绍了本发明示例性实施方式的方法之后,接下来,参考图4对本发明示例性实施方式的、用于启动数据库系统的设备。
图4为本发明实施例提供一种数据库系统启动设备的结构示意图,如图4所示,可以包括如下模块:
启动模块401,用于接收启动指示,并启动所述数据库系统;
读取模块402,用于在所述启动模块启动所述数据库系统的过程中,读取数据库配置文件中的管理员密码参数;
加载模块403,用于将所述管理员密码参数及其参数值加载到内存中;
其中,所述管理员密码参数为预先为所述数据库系统增加的密码参数,并且所述管理员密码参数所对应的访问权限被设置为大于业务密码参数所对应的访问权限。
在本实施例的一些实施方式中,可选的,所述预先为所述数据库系统增加的管理员密码参数的初始参数值为空。
在本实施例的一些实施方式中,可选的,所述加载模块403,具体用于判断所述管理员密码参数的参数值是否为空;若不为空且所述管理员密码参数的参数值能够通过合法性检查,则将所述管理员密码参数及其参数值加载到内存中;若为空,则将所述管理员密码参数及其为空的参数值加载到内存中。
在本实施例的另一些实施方式中,可选的,所述设备还包括:接收模块404和调用模块405;
所述接收模块404,用于接收已登录用户发出的设置或重置密码参数的参数值的设置指示,以及输入的参数值,其中,所述密码参数为所述管理员密码参数,或者所述业务密码参数;
所述调用模块405,用于调用对密码参数进行设置的函数,并将通过合法性检查的所述参数值设置为对应密码参数的参数值;以及调用用于加密的密码转换函数,采用所述预设加密算法对所述参数值进行单向加密,并将加密后的所述参数值维护在内存中;以及调用用于执行刷盘操作的刷盘函数,将加密后的所述参数值对应保存到所述数据库配置文件中。
在本实施例的又一些实施方式中,可选的,还包括:判断模块406;
所述接收模块404,还用于在所述数据库系统启动之后,接收登录所述数据库系统的登录请求,以及输入的登录密码;
所述判断模块406,用于若所述管理员密码参数的参数值以及所述业务密码参数的参数值均不为空,则触发所述调用模块405。
所述调用模块405,还用于调用用于加密的密码转换函数,采用所述预设加密算法对所述输入的登录密码进行单向加密;以及调用用于获取密码参数的参数值的获取函数,从内存中获取加密的密码参数的参数值,其中,所述密码参数包括所述管理员密码参数和所述业务密码参数;以及调用用于对登录密码进行认证的密码认证函数,将加密的登录密码与获取的加密的密码参数的参数值进行匹配;当所述加密的登录密码与获取的任一参数值匹配成功时,确定登录成功。
在本实施例的又一些实施方式中,可选的,所述设备还包括:确定模块407;
所述判断模块406,还用于若所述管理员密码参数的参数值以及所述业务密码参数的参数值均为空,则触发所述确定模块407;
所述确定模块407,用于直接确定登录成功。
在本实施例的再一些实施方式中,可选的,还包括:判断模块406;
所述接收模块404,还用于在所述数据库系统启动之后,接收已登录用户发出的对数据库系统的操作指示;
所述判断模块406,用于判断所述操作指示所指示的操作是否为预设类型操作,若为预设类型操作且所述管理员密码参数的参数值以及所述业务密码参数的参数值均不为空,则触发所述调用模块405;
所述调用模块405,还用于调用用于获取密码参数的参数值的获取函数,从内存中获取加密的所述管理员密码参数的参数值以及加密的所述已登录用户当前登录所述数据库系统使用的登录密码;调用用于对登录密码进行认证的密码认证函数,将获取的加密的登录密码与加密的所述管理员密码参数的参数值进行匹配;若匹配成功,则按照所述操作指示对所述数据库系统进行操作;或者
调用用于获取密码参数的参数值的获取函数,从内存中获取加密的所述业务密码参数的参数值以及加密的所述已登录用户当前登录所述数据库系统使用的登录密码;调用用于对登录密码进行认证的密码认证函数,将获取的加密的登录密码与加密的所述业务密码参数的参数值进行匹配;若匹配不成功,则按照所述操作指示对所述数据库系统进行操作,其中,内存中维护有登录密码,且该登录密码为采用所述预设加密算法将用户登录所述数据库系统时输入的登录密码加密后的登录密码。
在本实施例的再一些实施方式中,可选的,还包括:确定模块407;
所述判断模块406,还用于若所述管理员密码参数的参数值以及所述业务密码参数的参数值均为空,触发所述确定模块407;
所述确定模块407,用于直接按照所述操作指示对所述数据库系统进行操作。
在本实施例的还一些实施方式中,可选的,所述设备中的所述数据库系统为远程字典服务redis数据库系统。
在介绍了本发明示例性实施方式的方法和设备之后,接下来,介绍根据本发明的又一示例性实施方式的用于数据库系统启动的设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的用于数据库系统启动的设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于数据库系统的启动方法中的步骤。例如,所述处理单元可以执行如图2中所示的步骤S201、接收启动指示,并启动数据库系统,步骤S202、在启动过程中,读取数据库配置文件中的管理员密码参数,步骤S203、判断管理员密码参数的参数值是否为空;若不为空,进入步骤S204,以及步骤S204、若管理员密码参数的参数值能够通过合法性检查,则将管理员密码参数及其参数值加载到内存中。
下面参照图5来描述根据本发明的这种实施方式的用于启动数据库系统的设备50。图5显示的用于启动数据库系统的设备50仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,用于启动数据库系统的设备50以通用计算设备的形式表现。用于启动数据库系统的设备50的组件可以包括但不限于:上述至少一个处理单元501、上述至少一个存储单元502、连接不同系统组件(包括处理单元501和存储单元502)的总线503。
总线503表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元502可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)5021和/或高速缓存存储器5022,还可以进一步只读存储器(ROM)5023。
存储单元502还可以包括具有一组(至少一个)程序模块5024的程序/实用工具500,这样的程序模块5024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
用于启动数据库系统的设备50也可以与一个或多个外部设备504(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该用于启动数据库系统的设备50交互的设备通信,和/或与使得该用于启动数据库系统的设备50能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口505进行。并且,用于启动数据库系统的设备50还可以通过网络适配器506与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器506通过总线503与用于启动数据库系统的设备50的其它模块通信。用于启动数据库系统的设备50也可以通过显示单元507将数据库系统向用户显示。应当明白,尽管图中未示出,可以结合用于启动数据库系统的设备50使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
示例性程序产品
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于启动数据库系统的方法中的步骤,例如,所述终端设备可以执行如图2中所示的步骤S201、接收启动指示并启动数据库系统,步骤S202、在启动过程中,读取数据库配置文件中的管理员密码参数,步骤S203、判断管理员密码参数的参数值是否为空;若不为空,进入步骤S204,以及步骤S204、若管理员密码参数的参数值能够通过合法性检查,则将管理员密码参数及其参数值加载到内存中。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图6所示,描述了根据本发明的实施方式的用于启动数据库系统的程序产品60,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了数据库启动设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (10)

1.一种数据库系统启动方法,包括:
接收启动指示,并启动所述数据库系统,其中,所述数据库系统为远程字典服务redis数据库系统;
在启动过程中,读取数据库配置文件中的管理员密码参数,其中,所述redis数据库系统的头文件中定义管理员密码参数的变量;
判断所述管理员密码参数的参数值是否为空;
若不为空且所述管理员密码参数的参数值能够通过合法性检查,则将所述管理员密码参数及其参数值加载到内存中;
若为空,则将所述管理员密码参数及其为空的参数值加载到内存中;
其中,所述管理员密码参数为预先为所述数据库系统增加的密码参数,并且所述管理员密码参数所对应的访问权限被设置为大于业务密码参数所对应的访问权限;
接收已登录用户发出的设置或重置密码参数的参数值的设置指示,以及输入的参数值,其中,所述密码参数为所述管理员密码参数,或者所述业务密码参数;
调用用于对密码参数进行设置的函数,并将通过合法性检查的所述参数值设置为对应密码参数的参数值;
调用用于加密的密码转换函数,采用预设加密算法对所述参数值进行单向加密,并将加密后的所述参数值维护在内存中;
调用用于执行刷盘操作的刷盘函数,将加密后的所述参数值对应保存到所述数据库配置文件中;
接收已登录用户发出的对数据库系统的操作指示;
判断所述操作指示所指示的操作是否为预设类型操作,所述预设类型操作可以为管理员具有操作权限而普通用户不具有操作权限的管理类操作;
若为预设类型操作且所述管理员密码参数的参数值以及所述业务密码参数的参数值均不为空,则执行如下操作:
调用用于获取密码参数的参数值的获取函数,从内存中获取加密的所述管理员密码参数的参数值以及加密的所述已登录用户当前登录所述数据库系统使用的登录密码;调用用于对登录密码进行认证的密码认证函数,将获取的加密的登录密码与加密的所述管理员密码参数的参数值进行匹配;若匹配成功,则按照所述操作指示对所述数据库系统进行操作;或者
调用用于获取密码参数的参数值的获取函数,从内存中获取加密的所述业务密码参数的参数值以及加密的所述已登录用户当前登录所述数据库系统使用的登录密码;调用用于对登录密码进行认证的密码认证函数,将获取的加密的登录密码与加密的所述业务密码参数的参数值进行匹配;若匹配不成功,则按照所述操作指示对所述数据库系统进行操作。
2.根据权利要求1所述的方法,所述预先为所述数据库系统增加的管理员密码参数的初始参数值为空。
3.根据权利要求1所述的方法,在所述数据库系统启动之后,还包括:
接收登录所述数据库系统的登录请求,以及输入的登录密码;
若所述管理员密码参数的参数值以及所述业务密码参数的参数值均不为空,则执行如下操作:
调用用于加密的密码转换函数,采用所述预设加密算法对所述输入的登录密码进行单向加密;
调用用于获取密码参数的参数值的获取函数,从内存中获取加密的密码参数的参数值,其中,所述密码参数包括所述管理员密码参数和所述业务密码参数;
调用用于对登录密码进行认证的密码认证函数,将加密的登录密码与获取的加密的密码参数的参数值进行匹配;
当所述加密的登录密码与获取的任一参数值匹配成功时,确定登录成功。
4.根据权利要求3所述的方法,若所述管理员密码参数的参数值以及所述业务密码参数的参数值均为空,还包括:
直接确定登录成功。
5.根据权利要求1所述的方法,若所述管理员密码参数的参数值以及所述业务密码参数的参数值均为空,还包括:
直接按照所述操作指示对所述数据库系统进行操作。
6.一种数据库系统启动设备,包括:
启动模块,用于接收启动指示,并启动所述数据库系统,所述数据库系统为远程字典服务redis数据库系统;
读取模块,用于在所述启动模块启动所述数据库系统的过程中,读取数据库配置文件中的管理员密码参数,其中,所述redis数据库系统的头文件中定义管理员密码参数的变量;
加载模块,用于判断所述管理员密码参数的参数值是否为空;若不为空且所述管理员密码参数的参数值能够通过合法性检查,则将所述管理员密码参数及其参数值加载到内存中;若为空,则将所述管理员密码参数及其为空的参数值加载到内存中;
其中,所述管理员密码参数为预先为所述数据库系统增加的密码参数,并且所述管理员密码参数所对应的访问权限被设置为大于业务密码参数所对应的访问权限;
所述设备还包括:接收模块和调用模块;
所述接收模块,用于接收已登录用户发出的设置或重置密码参数的参数值的设置指示,以及输入的参数值,其中,所述密码参数为所述管理员密码参数,或者所述业务密码参数;
所述调用模块,用于调用用于对密码参数进行设置的函数,并将通过合法性检查的所述参数值设置为对应密码参数的参数值;调用用于加密的密码转换函数,采用预设加密算法对所述参数值进行单向加密,并将加密后的所述参数值维护在内存中;调用用于执行刷盘操作的刷盘函数,将加密后的所述参数值对应保存到所述数据库配置文件中;
所述设备还包括:判断模块;
所述接收模块,还用于在所述数据库系统启动之后,接收已登录用户发出的对数据库系统的操作指示;
所述判断模块,用于判断所述操作指示所指示的操作是否为预设类型操作,所述预设类型操作可以为管理员具有操作权限而普通用户不具有操作权限的管理类操作;若为预设类型操作且所述管理员密码参数的参数值以及所述业务密码参数的参数值均不为空,则触发所述调用模块;
所述调用模块,还用于调用用于获取密码参数的参数值的获取函数,从内存中获取加密的所述管理员密码参数的参数值以及加密的所述已登录用户当前登录所述数据库系统使用的登录密码;调用用于对登录密码进行认证的密码认证函数,将获取的加密的登录密码与加密的所述管理员密码参数的参数值进行匹配;若匹配成功,则按照所述操作指示对所述数据库系统进行操作;或者
调用用于获取密码参数的参数值的获取函数,从内存中获取加密的所述业务密码参数的参数值以及加密的所述已登录用户当前登录所述数据库系统使用的登录密码;调用用于对登录密码进行认证的密码认证函数,将获取的加密的登录密码与加密的所述业务密码参数的参数值进行匹配;若匹配不成功,则按照所述操作指示对所述数据库系统进行操作,其中,内存中维护有登录密码,且该登录密码为采用所述预设加密算法将用户登录所述数据库系统时输入的登录密码加密后的登录密码。
7.根据权利要求6所述的设备,所述预先为所述数据库系统增加的管理员密码参数的初始参数值为空。
8.根据权利要求6所述的设备,还包括:判断模块;
所述接收模块,还用于在所述数据库系统启动之后,接收登录所述数据库系统的登录请求,以及输入的登录密码;
所述判断模块,用于若所述管理员密码参数的参数值以及所述业务密码参数的参数值均不为空,则触发所述调用模块;
所述调用模块,还用于调用用于加密的密码转换函数,采用所述预设加密算法对所述输入的登录密码进行单向加密;以及调用用于获取密码参数的参数值的获取函数,从内存中获取加密的密码参数的参数值,其中,所述密码参数包括所述管理员密码参数和所述业务密码参数;以及调用用于对登录密码进行认证的密码认证函数,将加密的登录密码与获取的加密的密码参数的参数值进行匹配;当所述加密的登录密码与获取的任一参数值匹配成功时,确定登录成功。
9.根据权利要求8所述的设备,还包括:确定模块;
所述判断模块,还用于若所述管理员密码参数的参数值以及所述业务密码参数的参数值均为空,则触发所述确定模块;
所述确定模块,用于直接确定登录成功。
10.根据权利要求6所述的设备,还包括:确定模块;
所述判断模块,还用于若所述管理员密码参数的参数值以及所述业务密码参数的参数值均为空,触发所述确定模块;
所述确定模块,用于直接按照所述操作指示对所述数据库系统进行操作。
CN201510471794.4A 2015-08-04 2015-08-04 一种数据库系统启动方法和设备 Active CN105117660B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510471794.4A CN105117660B (zh) 2015-08-04 2015-08-04 一种数据库系统启动方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510471794.4A CN105117660B (zh) 2015-08-04 2015-08-04 一种数据库系统启动方法和设备

Publications (2)

Publication Number Publication Date
CN105117660A CN105117660A (zh) 2015-12-02
CN105117660B true CN105117660B (zh) 2018-07-20

Family

ID=54665644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510471794.4A Active CN105117660B (zh) 2015-08-04 2015-08-04 一种数据库系统启动方法和设备

Country Status (1)

Country Link
CN (1) CN105117660B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106506524B (zh) * 2016-11-30 2019-01-11 百度在线网络技术(北京)有限公司 用于验证用户的方法和装置
CN107517268A (zh) * 2017-09-05 2017-12-26 郑州云海信息技术有限公司 一种基于san存储的数据操作方法、装置及系统
CN108536438B (zh) * 2018-04-10 2021-11-09 武汉斗鱼网络科技有限公司 处理用户行为数据的打点模块、方法及计算机可读介质
CN109327455A (zh) * 2018-11-01 2019-02-12 郑州云海信息技术有限公司 一种nas设备的访问方法、装置、设备及可读存储介质
CN111414423B (zh) * 2020-03-20 2023-07-25 北京金山云网络技术有限公司 对MongoDB数据库的操作方法、装置和服务器
CN112287384A (zh) * 2020-09-21 2021-01-29 长沙市到家悠享网络科技有限公司 配置文件生成方法、装置及存储介质
CN114495329A (zh) * 2022-01-21 2022-05-13 珠海格力电器股份有限公司 智能门锁开启方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102118247A (zh) * 2011-01-04 2011-07-06 中兴通讯股份有限公司 一种密码管理系统及方法
CN102866998A (zh) * 2011-07-05 2013-01-09 中兴通讯股份有限公司 一种同步系统中集中式密码管理方法和系统
CN104391874A (zh) * 2014-10-29 2015-03-04 中国建设银行股份有限公司 一种数据库密码管理方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102118247A (zh) * 2011-01-04 2011-07-06 中兴通讯股份有限公司 一种密码管理系统及方法
CN102866998A (zh) * 2011-07-05 2013-01-09 中兴通讯股份有限公司 一种同步系统中集中式密码管理方法和系统
CN104391874A (zh) * 2014-10-29 2015-03-04 中国建设银行股份有限公司 一种数据库密码管理方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JAVA WEB系统用MD5算法加密用户口令;李茂春;《电脑与信息技术》;20101031;第18卷(第5期);摘要,第39页2.2章节 *
Oracle数据库启动过程研究与实践;周文琼;《软件导刊》;20110731;第10卷(第7期);第169页第1章 *

Also Published As

Publication number Publication date
CN105117660A (zh) 2015-12-02

Similar Documents

Publication Publication Date Title
CN105117660B (zh) 一种数据库系统启动方法和设备
US11838324B2 (en) Secure web container for a secure online user environment
US20240106865A1 (en) Secure Web Container for a Secure Online User Environment
CN101051908B (zh) 动态密码认证系统及方法
US20150312250A1 (en) Soft token system
US20140298421A1 (en) Multi-factor authentication using an authentication device
US20120297190A1 (en) Usable security of online password management with sensor-based authentication
CN103813334A (zh) 权限控制方法和权限控制装置
CA2884775C (en) Method for phone authentication in e-business transactions and computer-readable recording medium having program for phone authentication in e-business transactions recorded thereon
WO2009037700A2 (en) Remote computer access authentication using a mobile device
US11979393B2 (en) Customizable authentication system
CN107113319A (zh) 一种虚拟网络计算认证中应答的方法、装置、系统和代理服务器
KR20140054395A (ko) 대역외 원격 인증
Singh et al. A secure multi-tier authentication scheme in cloud computing environment
CN109150787A (zh) 一种权限获取方法、装置、设备和存储介质
CN110941809A (zh) 文件加解密方法、装置、指纹密码装置及可读存储介质
CN109886662A (zh) 区块链钱包应用方法及系统、终端和计算机可读存储介质
CN106537873B (zh) 建立针对虚拟化和管理的安全计算设备
CN108847948A (zh) 活动群的创建方法及装置、介质和计算设备
CN107844290B (zh) 基于数据流安全威胁分析的软件产品设计方法及装置
CN109995774A (zh) 基于部分解密的密钥认证方法、系统、设备及存储介质
CN103257886B (zh) 一种调用信息输入程序的方法及一种电子设备
CN109324843A (zh) 一种指纹处理系统、方法及指纹设备
CN113297557A (zh) 账号数据授权方法、装置、设备及计算机可读存储介质
EP3790225B1 (en) Securing user inputs in mobile device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou NetEase Shuzhifan Technology Co.,Ltd.

Address before: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: HANGZHOU LANGHE TECHNOLOGY Ltd.

CP01 Change in the name or title of a patent holder