改进的数据库访问方法及装置的制作方法

文档序号:6409611阅读:220来源:国知局
专利名称:改进的数据库访问方法及装置的制作方法
技术领域
本发明涉及数据库管理系统,特别是指一种经过改进的对存储在数据库管理系统中的信息进行访问的方法和装置。
数据库普遍应用于商业环境中。在小型的商业业务中通常使用驻留在个人计算机中的数据库管理系统(DBMS),记录诸如货存或客户清单等数据。为了实现这种用途,人们采用了可在个人计算机上使用的小型商业上获得的DBMS系统。其中包括如Microsoft公司的Access及Borland公司的Paradox。通常,这些的小型DBMS系统适合在那些规模较小、访问数据的用户相对较少的商业环境中应用。在这种情况下,从DBMS系统中获取数据的速度是可以被接受的。而且,因为对运行DBMS系统的个人计算机所进行的访问能够被适当地控制起来,所以,DBMS系统中存储的数据是相当安全的。
然而,对于使用庞大的DBMS系统的大型商业业务来说,数据的访问速度和安全性是一个非常重要的问题。例如,在大型的财务机构中,保存了与上百万人有关的财务信息,可能会有成百上千的人同时要求访问数据,访问的速度就可能不够令人满意。此外,对于一个有成千上万个“哑终端”经常处于不安全环境中的大型DBMS系统来说,数据安全性也是一个重要的问题。比如,一个银行可能保存着许多敏感的金融信息,关系到成百万独立帐户与/或顾客。这种信息应该只对“需要了解”的DBMS系统用户开放。
进一步来说,经常会发生这种情况,不同类型的用户可能需要数据库中不同种类的信息。例如,一种类型的用户如银行出纳员,需要客户的帐户收支结余情况,而一个信贷员则需要有关客户资信情况的信息。因此,只有特定类型的用户才能被允许访问数据库中特定种类的信息。
本发明以交互方式生成一组存储在DBMS主系统中的查询包。查询包的生成只局限于对那些有权这样做的用户。具有代表性地,只有DBMS系统的数据库管理员才有这种权力。查询包包括一个或多个预先编译好的程序段。每个程序段都是经过预编译的单独的SQL语句。每个查询包都具有与之相关的权限表,它列举了能够调用该查询包中任何程序段的每个单个用户或用户类别。经过系统地制定出一系列查询包——这里的每个包都是为某一类特定用户专门设计的,DBMS系统的数据安全性得到了增强。调用包中存储的预编译SQL语句进而会显著地缩短访问时间。而且,数据库管理员和用户可以在一个用户友好的界面中交互地生成和使用查询包。
根据本发明的其它方面,主DBMS系统是一个分布式数据库结构(DRDA)的主从(compliant)DBMS系统,其中储存着查询包。数据库管理员通过一组发送到DRDA主从DBMS系统中去的指令在工作站中制定查询包。
根据本发明的其它方面,每个查询包的权限表存储在主DBMS系统中。
通过参考下面的详细说明和附图,上述本发明的特点及许多附带的优点将会变得更加易于接受和理解。


图1是一个驻留在大型主计算机中的数据库管理系统的示意图,该主机用网络联接了各种用户工作站。
图2是描述查询包结构的示意图。
图3是描述由数据库管理员生成一个新查询包的方法的流程图。
图4A-4B是在生成一个查询包时数据库管理员所见到的屏幕显示。
图5A-5C是在生成一个查询包时数据库管理员所见到的屏幕显示。
图6是执行查询包中的程序时用户所见到的屏幕显示。
图7是数据库管理员给一个查询包赋予用户权限时所见到的屏幕显示。
图8是描述查询包执行方法的流程图。
最佳实施方案的详细描述图1是一个典型的大规模数据库管理系统(DBMS)11的示意图,该系统包括了一个大型计算机13和若干用户工作站15。大型机13以IBM3090为例,或者用一个小型机如AS/400来代替。工作站15是用网络联系起来访问大型机13的独立的个人计算机。在最佳实施例中,用户工作站15是与IBM兼容的个人计算机,其中装有许多应用软件,如Excel、Lotus 1-2-3或Microsoft Word。正如下面将要进一步描述的,应用软件的用户需要访问驻留在大型机13中的DBMS系统中所存数据的情况是非常普遍的。而且,虽然图1中只显示了3个用户工作站15,但在大型DBMS系统中,大型机13会以网络联接上百万个用户工作站15。实际上,正如下面将要进一步详细说明的那样,本发明比现有的大型DBMS系统具有更大的优点。
大型机13也被当作主计算机,并储存驻留其中的DBMS系统中的数据。例如,大型机13可能会安装著名的DB/2的DBMS系统。根据操作用户工作站15的用户所发出的指令,可以完成对大型机13中数据的访问。如上所述,用户工作站15在典型情况下是运行本地应用程序的个人计算机。用户工作站15也有可能运行本地主访问软件,如Wall Data公司的RUMBA。总之,大多数有能力从远程主DBMS系统输入数据的应用软件在标准化的指令语言和语法的基础上,都能做到这一点。如本领域技术熟练的人员所知,著名的结构化查询语言(SQL)或其微小的修改现在已经成为事实上的标准。SQL是一组指令和语法规则,用于访问和修改DBMS系统中的数据。为了更进一步了解SQL,读者可以参考“A Guideto the SQL Standard”,作者为C.J.Date,出版者是Addison-Wesley(1989年第2版)。
本发明允许用户工作站15快速访问驻留在大型机13中的DBMS系统中所存储的数据,还提供了增强的安全性。概括地说,本发明可以生成一组储存在DBMS系统中查询包,该DBMS系统驻留在大型机13中。查询包的生成仅局限于那些享有该权限的用户,有代表性地,只有DBMS系统的数据库管理员有此权力。如技术上为人所知的,数据库管理员是负责DBMS系统整体维护和操作的个体。查询包包括一组程序段。每个程序段是一个单独的经过预编译的SQL语句。一个预编译SQL语句也称作一个“静态”语句。虽然使用查询包这个名称,但这些包中可以包含任何SQL语句,而不仅仅是象“SELECT”这样的“查询”类语句。进而,每个查询包都与一个权限表联系在一起,这个权限表列举出了每一个能够调用查询包中任何程序段的个体用户或用户类型。该用于查询包的权限表也储存在驻留在大型机13中的DBMS系统中。经过系统地制定出一系列查询包——这里的每个包都是为某一类特定用户专门设计的,DBMS系统的数据安全性得到了增强。进而通过预编译的静态语句也显著地缩短了访问DBMS系统数据的时间。而且,数据库管理员和用户可以在一个用户友好的界面中交互地生成和使用查询包。在此之前,为了便于生成预编译语句,复杂的源代码段——典型地使用第三代语言,如COBOL或PL/I,会被写出并安装在大型机13中。
在最佳实施方案中,用户工作站15中的一个被设计为供数据库管理员使用的安全的工作站。只有数据库管理员能访问此工作站,因此,只有数据库管理员能制定新的查询包或修改一个现存的查询包。或者,数据库管理员可以通过用其用户标识和密码“登录”到DBMS系统,从而访问任何工作站15。因此,可以认为很多只允许数据库管理员生成或修改查询包的方法都是可行的。
下面是图2,它示意性地描绘了一个作为例子的查询包21。如上所述,包中每个独立的SQL语句被称为程序段23a-e。一个查询包可以包括几十甚至几百个单独的程序段,这取决于应用。每个程序段23a-e,如程序段23a,是一个在数据库的预定部分执行预定任务的SQL语句。在图2所示的特例中,查询包21包含了5个程序段23a-e。程序段23a-b是使用SQL语言中的SELECT指令的SQL语句。其余的程序段23c-e分别调用SQL语言中的INSERT、DELETE和UPDATE指令。虽然图2中的程序段以SQL语言格式出现,但如上所述,程序段23a-e是经过预编译的静态语句。
为了增强DBMS系统中数据的安全性,每个查询包21也具有一个与其相关的权限表25。权限表25是一个数据库用户清单或预定义的用户类别,其中所列的数据库用户或预定义的用户类型都有权访问查询包21中所列的程序段23a-e。查询包的权限表储存在驻留在大型机13中的DBMS系统中。通过提供权限表,程序组能够在查询包中逻辑分组。例如,在一个财务机构中,信贷员有权访问一个包含一组程序段的查询包,其中所有内容都与检验个人资信程度的信息有关。相应地,银行出纳员则有权访问一个包含一组程序段的查询包,其中的所有内容都与帐户的收支余额信息有关。如上所述,查询包21的生成是由数据库管理员完成的,其过程如图3所示。在方框100中,在用户工作站15中,数据库管理员初始化一个查询包。初始化的步骤由通过网络向主机发送一个BGNBND(开始捆扎)指令来完成。最佳实施方案中的网络使用高级对等通信(APPC)协议。BGNBND指令专门针对分布式数据库结构(DRDA)的主从DBMS系统,并通知DBMS系统开始形成一个查询包。一个DRDA的主从DBMS系统服从IBM公司公布的标准。为了进一步了解有关DRDA数据库的情况,读者可以参考“Distributed Relational Database Architecture”IBM参考号码为SC26-4651-01(1993年第二版)。通过发送方框100中的BGNBND指令,DBMS系统中的一个“工作单元”被初始化。如本领域内技术人员所熟知的,在DRDA主从DBMS系统中,一个“工作单元”是一个指令队列,DBMS系统把它看作一个独立的实体。如此这样,DBMS系统能够保证所有的指令在执行之前是相互协调的。因此,除非所有的指令,如BGNBND,在语法上都是正确的,否则,工作单元中将没有任何指令被执行。对本发明进一步的描述将在DRDA主从DBMS系统中进行。可以认为,对其它类型的DBMS系统来说,不同的指令形成了一个查询包。
在BGNBND指令被大型机13接收后,驻留在大型机13中的DRDA主从DBMS系统以一个SQLCARD数据对象来响应。SQLCARD数据对象说明BGNBND指令是否被DBMS系统成功地执行了。因此,在方框102中,对SQLCARD数据对象进行检验,如果SQLCARD数据对象的内容说明BGNBND指令是成功的,那么,在方框104中,数据库管理员可以开始向查询包加入程序段。数据库管理员特别要生成一个SQL语句,该语句被作为一个程序段加到查询包中。这个SQL语句通过APPC网络被发送到驻留在大型机13中的DBMS系统中去。参考图2,举一个SQL语句的例子,它可以是SELECT* FROM DEMO.PART。
然而,如果在方框102中,SQLCARD数据对象表明,BGNBND指令并没有成功,那么,在方框106中,SQLCARD数据对象的内容以一个错误代码显示给数据库管理员。进而,在方框108中,工作单元会被数据库管理员撤消操作(roll back),有效地废除查询包的生成,并重新开始。如果BGNBND指令是成功的,那么在方框104中,数据库管理员会发一个SQL语句给DBMS系统。这个SQL语句被DBMS系统接收并处理。特别地,驻留在大型机13中的DBMS系统编译所接收的SQL语句,并将其与由前面的BGNBND指令形成的查询包相联系。一旦SQL语句的编译和包含到查询包中的工作完成后,一个SQLCARD数据对象被返回给数据库管理员。从大型机13返回的SQLCARD数据对象在方框110中再一次被检验。如果SQLCARD数据对象说明SQL语句已被满意地作为一个程序段加入到包中了,则数据库管理员可以选择在方框112中进一步把SQL语句加入到查询包中。然而,如果从驻留在大型机13中的DBMS系统中来的SQLCARD数据对象表明,前面的SQL语句的添加是不成功的,则在方框106中,向数据库管理员显示一个错误代码。
向查询包添加SQL语句的处理过程会自行重复,直到多个SQL语句通过重复方框104、110、和112的操作被加入查询包中。当所有期望的SQL语句都被加入查询包之后,在方框114中,向驻留在大型机13中的DBMS系统发送一条指令来关闭查询包。特别是对DRDA主从DBMS系统来说,关闭一个查询包的指令是ENDBND。ENDBND指令向驻留在大型机13中的DBMS系统说明查询包现在完成了。
DBMS系统再次返回一个SQLCARD数据对象。在方框116中,对该SQLCARD数据对象进行检验,以确定ENDBND指令是否被成功地执行了。如果是不成功的,那么,在方框106中,向数据库管理员显示一个错误代码。进而,在方框108中,前面由BGNBND指令初始化的工作单元被撤消操作,有效地取消之后的所有指令,包括BGNBND指令。但是,如果ENDBND指令是成功的,那么,在方框118中,查询包标识和查询包参数储存到一个由驻留在大型机13中的DBMS系统维护的包列表中。另外,同样的信息被存储在由数据库管理员使用的用户工作站终端15中,以便形成查询包。如下面将要进一步描述的那样,包列表允许DBMS系统的用户访问查询包和其中包含的多个程序段。
例如,包列表中含有关于每个查询包的信息,如查询包标识、查询包内容描述、内存位置(每个查询包中的各个程序段在大型机13的内存或其它永久存储器中的位置)、及其它参数。随着信息向包列表中的插入,会向数据库管理员发回一个SQLCARD数据对象。在方框120中,对SQLCARD数据对象进行检查,是否有错误信息。如果有错误信息,则在方框106中显示错误信息,在方框108中,工作单元被撤消操作。
然而,如果有关新生成查询包的参数信息插入大型机13或用户工作站15中包列表的过程如SQLCARD数据对象所指示的,是成功的,则在方框122中,数据库管理员必须设定查询包的用户权限表。数据库管理员可以在多个能访问所生成的特定的查询包的数据库用户中进行选择。比如,数据库管理员可以查看多个数据库用户类型并把每个期望的类型插入一个与该特定查询包相联系的权限表中。由DBMS系统维护的权限表通常存贮在大型机13中。
当制定好查询包的用户权限表之后,接着,在方框124中,递交工作单元。对于熟悉DRDA数据库的人来说,显然,递交一个工作单元也就完成了查询包,它就可以被执行了。
为了进一步描述查询包的生成,可以参考图4A-4B和5A-5C,它们显示了在生成查询包时数据库管理员所见到的屏幕显示。特别是在图4A中,数据库管理员会见到一个窗口51。窗口51的主要部分是一个常见的数据库表格53。在顶部菜单条55中,可以见到一个标为“Admin(管理)”的下拉菜单项57。Admin菜单57中有一个名为“Package Creation(查询包生成)”的选项。当该选项被选中时,图3中所述的一系列步骤会被数据库管理员执行。“Package Creation(查询包生成)”选项被选中后,显示一个“Package Builder(查询包建立)”对话框59,如图4B所示。此时,数据库管理员压下“Initialize Package(查询包初始化)”按钮,按下该按钮(一般使用鼠标)向驻留在大型机13中的DBMS系统发送BGNBND指令。
如果SQLCARD数据对象说明,BGNBND指令是成功的,则转到图5A,出现“Initiallize Package(查询包初始化)”对话框61。在优选实施例中,数据库管理员在对话框61的某一位置上输入查询包的名称。在图5A所示的例子中,包的名字是“ACCOUNT”。通过包名,DBMS系统的用户可以访问并指向查询包。而且,还可以输入一个用普通词汇来描述包中所含程序段的包描述。在图5A所示的例子中,包描述是“AllProcedures for the Accounting Dept.”(所有用于accounting Dept.的程序段)。当这个标识信息被输入对话框61,其中的确认按钮63被压下。数据库管理员将返回到“Package Builder(查询包建立)”对话框73,如图5B所示。这个新的“Package Builder(查询包建立)”对话框73与“Package Builder(查询包建立)”对话框59除了“Initiallze Package(查询包初始化)”按钮变成“ADD to ACCOUNT(加入到ACCOUNT)”之外,其它都是相同的。按钮的变化是为了包含新查询包的名字,在此例中是“ACCOUNT”。如果新查询包的名字是“TestPkg”,那么,该按钮就标为“ADD to TestPkg”(加入到TestPkg)。
接着,数据库管理员可以通过向“Query(查询)”框65中键入SQL语句,输入需要加入到查询包中的SQL语句。比如,数据库管理员可以输入一个SQL语句,如“SELECT*FORM PUBS.AUTHORS”。SQL语句输入之后,按下“ADD to ACCOUNT”按钮67,会出现一个新的对话框。这个新的对话框命名为“Procedure Description(程序段描述)”,如图5C中对话框69所示。这时,可以为查询包中新输入的SQL语句(作为程序段)提供一个名字。在此例中,新程序段的名字是“NORTHEAST”,程序段描述是“All records from the NORTHEASTregion”(所有来自NORTHEAST区域的记录)。当数据库管理员包括了所有需作为程序段加入查询包的SQL语句之后,在“Package Builder(查询包建立)”对话框59中,“Create ACCOUNT(生成ACCOUNT)”按钮71被按下。按下该按钮执行图3方框114-120中所示的步骤。
下面,需要提供查询包的用户权限。如果没有明确的用户权限,所有DBMS系统的用户都有权使用新生成的查询包中的程序段。但是,如果希望有可选的用户权限,则如图3中方框122所示,数据库管理员能完成这个工作。特别是回到图4和窗口51,数据库管理员在“View(视图)”下拉菜单项中选择名为“View Packages(包视图)”的选项。当该选项被激活,如图6所示,会出现一个对话框77。“View Packages(包视图)”对话框77包括所有已经生成的查询包的清单,并列出高亮度显示的查询包中的每一个程序段,还有高亮度显示的程序段的描述。在图6的例子中,名为“ACCOUNT”的查询包中有一个名为“NORTHEAST”的程序段,该程序段的描述为“All records from the NORTHEAST region”(所有来自NORTHEAST区域的记录)。
为了授予或改变用户权限,以便执行查询包,按下“Package Authority(包权限)”按钮79。按下后,转到图7,会出现一个“ACCOUNTAuthorization(ACCOUNT授权)”的对话框81。对话框81被命名为“ACCOUNT Authorization(ACCOUNT授权)”是因为新的查询包名为“ACCOUNT”,对于其它查询包的名字,对话框81也会设置其它名字。对话框81的左手边是一个DBMS系统用户的列表。虽然本例中没有列出任何名字,但在最佳实施方案中,数据库用户可能包括DBMS系统的各个用户名或者是不同的数据库用户类型。为了向查询包中加入授权的用户,选中特定的数据库用户,并按下“Add User(增加用户)”按钮83。这个过程会不断重复,直到所有希望的用户授权都被完成。每次按下“AddUser(增加用户)”按钮83,工作站15上的数据库管理员会向驻留在大型机13中的DBMS系统发出信号,把选中的用户加入与该查询包相联的用户权限表中去。该权限表以文件形式储存在大型机13中。
通过上述方式,,向数据库管理员提供了一种交互式工具,来生成包含多个SQL语句的查询包。这些SQL语句经过了预编译,并由驻留在大型机13中的DBMS系统储存起来。SQL语句的预编译带来了明显的速度优势。例如,在现有的技术中,希望访问驻留在大型机13中的DBMS系统的用户必须向DBMS系统发送一个SQL语句。这个SQL语句在大型机中被接收、编译并执行。SQL语句的执行结果返回用户。然而,每个独立的SQL语句被编译并执行后,SQL语句的编译版本就作废了。因此,当多个用户执行同样的SQL语句时,就需要大型机13重新编译每个SQL语句。这通常会使驻留在大型机13中的DBMS系统的响应时间难以令人接受。而在本发明中,提供了一组查询包,每个中都有一组经过预编译的程序段。因此,对驻留在大型机13中的DBMS系统的访问被大简化并加快。
为了便于DBMS系统的用户执行查询包中的程序段,执行图8所述的步骤。在操作中,用户工作站15中的一个用户看到一个与图4中窗口51很相似的屏幕显示。但是,其中有一个重要的差异就是,对于一个DBMS系统的用户,“Admin(管理)”的菜单项57被省略了。因而,一个用户不能象数据库管理员那样生成查询包,也不能对查询包授予或撤消权限。在执行查询包中的一个程序段时,用户选择“View(视图)”下拉菜单项中的“View Packages(包视图)”选项。接着,如图6所示,显示“View Packages(包视图)”对话框77。然而,由于用户并非数据库管理员,“Package Authority(包权限)”按钮79也被省略了。用户可以滚动查询包列表来选定希望显示的特定的查询包。该查询包中的程序段显示在“Procedure(程序段)”方框中,用户可以选择执行某个程序段。
程序段选定之后,按下执行按钮87。按下此按钮后,图8所示的方法就被用户工作站15执行了。特别是在方框200中,将要执行的程序段由用户输入到工作站15中,并被工作站15接收。接着,检查在本地查询包表中所选程序段的某些参数是否可行。每个用户工作站15中都包含带有参数信息的包列表。典型地,本地包列表作为一个文件存储在作站15的存储器中。当工作站15访问每个查询包时,与访问的查询包有关的参数信息会不断地更新本地包列表。参数信息被传送到驻留在大型机13中的DBMS系统中,以便调用一个特定的程序段。但是,对新的用户工作站15或新生成的查询包来说,本地包列表中可能没有所需的参数信息。因此,在方框202中,要确定所选程序段的参数信息是否在包列表中。如果不在,则在方框204中,使用标准APPC协议从驻留在大型机13中的DBMS系统中将参数信息检索出来。
接下来,在方框206中,如果所选程序段的参数信息由于一个或几个原因而没有在DBMS系统中找到的话,则中止执行程序段并向用户返回一个出错信息。然而,如果所选程序段的参数信息能够找到,则在方框208中,将参数信息加入到用户工作站15中的本地包列表中。接着,在方框210中,参数信息被转换成DRDA原语并传送到驻留在大型机13中的DBMS系统中去。
在方框212中,大型机13从工作站15接收到参数信息后,驻留在大型机13中的DBMS系统判断用户是否有权执行查询包中的程序段。这一步通过检查储存在与特定查询包相联系的权限表中的已授权用户列表来完成。如果用户无权执行查询包中的任何程序段,则过程中止,用户收到一个出错信息。
然而,如果用户有权执行查询包中的程序段,则在方框214中,判断程序段中是否包含SQL语言的“SELECT”指令。如果程序提供一条“SELECT”指令,在方框216中,驻留在大型机13中的DBMS系统执行该指令并向用户返回及显示所需的数据。如果,程序提供的不是SELECT,而是其它一些SQL指令(如INSERT、DELETE、或UPDATE),则程序段在方框218中被执行并向用户返回一个确认。在两种情况下,在方框220中,工作单元都会被提交,程序调用就完成了。
通过对本发明的最佳实施方案的图示和描述,可以看出,在不违背本发明的精神和范围的前提下,还可以进行许多变化。
权利要求
1.一种提高数据库系统效率的方法,所述的数据库系统包括一个驻留在主机中的数据库管理系统(DBMS),所述的DBMS系统与一组工作站以可通信的方式联接在一起,所述的DBMS系统储存可以通过所述的工作站进行访问的信息,所述的方法包括以下步骤(a)、生成至少一个查询包,所述的查询包包括一组程序段,所述的程序段是预编译过的静态语句,当它们被DBMS系统执行时,操纵储存在所述的DBMS系统中的所述的信息,并且(b)、把每个查询包与一个权限表联系在一起,所述的权限表列举出一组可以访问所述的查询包的预定的用户,所述的查询包中所述的预定用户组能够通过所述的工作站调用所述的查询包中所述的程序段,因而能够操纵储存在所述DBMS系统中的所述信息。
2.权利要求1中的方法,其中生成所述查询包的步骤由一个以交互方式使用所述工作站之一的数据库管理员完成,并且包括以下步骤(a)、通过从所述的工作站向所述的DBMS系统发出一条BGNBND指令,对所述的查询包进行初始化;(b)、向所述的DBMS系统发送至少一条结构化查询语言(SQL)指令;(c)、所述DBMS系统接收所述SQL指令并将所述指令编译为所述经过预编译的静态语句;(d)、将所述经过预编译的静态语句与所述查询包联系在一起,并且(e)、通过从所述工作站向所述的DBMS系统发送一条ENDBND指令来完成所述查询包。
3.权利要求2的方法,其中所述工作站与所述DBMS系统之间的通信通过高级对等协议(APPC)来实现。
4.权利要求1的方法,其中与所述查询包联系在一起的所述权限表由使用所述工作站之一的数据库管理员来生成(a)、向所述DBMS系统发送所述的预定的用户集合,这些用户有权调用所述的查询包;(b)、将所述预定用户集合包括在所述权限表中;(c)、将所述权限表作为一个权限文件储存起来;并且(d)、将所述权限表文件与所述查询包联系在一起。
5.权利要求2的方法,其中与所述查询包联系在一起的所述权限表由交互地使用所述工作站之一的数据库管理员来生成(a)、向所述DBMS系统发送所述的预定的用户集合,这些用户有权调用所述的查询包;(b)、将所述预定用户集合包括在所述权限表中;(c)、将所述权限表作为一个权限文件储存起来;并且(d)、将所述权限表文件与所述查询包联系在一起。
6.权利要求1的方法,还包括以下步骤(a)、生成关于所述查询包的参数信息,所述参数信息唯一地标识所述的查询包并且包括调用所述查询包中所述程序段所需的必要信息,并且(b)、其中,在所述的预定用户组中的用户之一通过所述工作站调用所述查询包中的所述程序段后,在所述的工作站中生成一个本地包列表,所述本地包列表包括所述的参数信息。
7.权利要求2的方法,还包括以下步骤(a)、生成关于所述查询包的参数信息,所述参数信息唯一地标识所述的查询包并且包括调用所述查询包中所述程序段所需的必要信息,并且(b)、其中,在所述的预定用户组中的用户之一通过所述工作站调用所述查询包中的所述程序段后,在所述的工作站中生成一个本地包列表,所述本地包列表包括所述的参数信息。
8.权利要求1的方法,其中所述的DBMS系统是一个分布式关系数据库结构(DRDA)的主从DBMS系统。
9.一个改进的数据库系统包括(a)、一个驻留在主计算机上的数据库管理系统(DBMS),所述的DBMS系统可以对信息进行存储操作;(b)、一组用户工作站,所述的用户工作站与所述的DBMS系统可通信地联接在一起,所述的用户工作站能够访问并操纵存储在所述的DBMS系统中的所述信息;(c)、一个数据库管理员工作站,所述数据库管理员工作站能够交互地与所述的DBMS系统通信,产生一个由所述DBMS系统储存的查询包,所述的查询包包括一组程序段,所述程序段是预编译过的静态语句,当它们被DBMS系统执行时,操纵储存在所述的DBMS系统中的所述的信息,所述的数据库管理员工作站也能交互地与所述的DBMS系统通信,产生一个与所述查询包相联系的权限表,所述的权限表列举出一组预定的可以访问所述的查询包的用户;由此,所述查询包中的所述用户表中列出的所述预定用户组能够调用所述查询包中的所述程序段,并且因此可以操纵所述DBMS系统中储存的所述信息。
10.权利要求9中的装置,其中所述的DBMS系统是一个分布式关系数据库结构(DRDA)的主从DBMS系统。
11.权利要求10中的装置,其中所述的主计算机是一个大型计算机。
全文摘要
一种通过存储在主数据库管理系统(DBMS)中的查义包来改进DBMS系统的效率和安全性的方法。查询包的生成只限于那些享有该权限的用户。例如,数据库管理员对发送到DBMS系统的查询包进行初始化(100)。如果成功的话,数据库管理员向查询包中增添多个SQL语句(104)并将其发送给DBMS以关闭查询包(114)。在成功地关闭了查询包之后,将所有信息插入到主查询包列表中去(118)并在成功地插入之后,设置用户权限(122)。否则,向所有用户显示出错信息,并取消所有对数据库的操作(108)。
文档编号G06F17/30GK1140499SQ95191370
公开日1997年1月15日 申请日期1995年1月24日 优先权日1994年1月26日
发明者余洪利(音译), 托马斯·C·米特什尔, 小阿尔伯特·詹姆斯·尼科利 申请人:瓦尔数据公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1