您所在的位置: 首页>>读书频道>>数据库>>综合>>

1.6.2 限制非授权访问

http://book.51cto.com  2008-01-15 18:34  (美)艾曼斯瑞 内沃斯  中国电力出版社  我要评论(0)
  • 摘要:《数据库系统基础(第四版)》介绍了在设计、使用、实现数据库系统和应用时所需的基本概念。第一章主要介绍的是数据库基础。本文说的是限制非授权访问、为程序对象提供持久性存储和提供高效查询处理的存储结构。
  • 标签:数据库  DBMS  DBA  数据库系统基础

1.6.2  限制非授权访问

当多个用户共享一个大型数据库时,很可能大多数用户都无权访问数据库中的所有信息。例如,金融数据通常都被看作是机密数据,所以只有授权用户才允许访问这样的数据。此外,可能只允许某些用户检索数据,而另外一些用户则既可以检索数据又可以更新数据。因此,访问操作的类型(检索或更新)也必须有所控制。通常,会为用户或用户组提供受口令保护的账号,他们可以使用账号来访问数据库。DBMS应当提供一个安全和授权子系统(security and authorization subsystem),DBA可以使用这个子系统来创建账户以及指定账户约束。DBMS必须自动执行这些约束。请注意,我们也可以对DBMS软件应用类似的控制。例如,只有DBA人员有权使用某个特权软件(privileged software),如创建新账户的软件。类似地,简单参与用户可能只允许通过专门为其使用而开发的固化事务来访问数据库。

1.6.3  为程序对象提供持久性存储

数据库可以用于为程序对象和数据结构提供持久性存储(persistent storage)。这是产生面向对象数据库系统(object-oriented database system)的主要原因之一。程序设计语言通常有复杂的数据结构,例如Pascal中的记录类型,或C++和Java中的类定义。一旦程序终止,除非程序员显式地将程序变量的值存储在永久文件中,否则就会将其丢弃,而若要将程序变量的值显式地存储在永久文件中,这通常需要将复杂的程序变量结构转换为适于文件存储的格式。如果下次需要读取这些数据,程序员又必须将其从文件格式转换为程序变量结构。面向对象数据库系统与诸如C++和Java等程序设计语言是兼容的,DBMS软件会自动完成所需的转换。因此,C++中一个复杂的对象就可以永久地存储在面向对象DBMS中。这样的对象就具备了持久性(persistent),这是因为:即使程序执行终止,该对象仍存在,而且以后可以由另一个C++程序直接检索。

程序对象和数据结构的持久性存储是数据库系统的一项重要功能。传统数据库系统经常受到所谓的阻抗失配问题(impedance mismatch problem)的困扰,这是由DBMS提供的数据结构与程序设计语言的数据结构不兼容所造成的。而面向对象数据库系统则通常提供了与一种或多种面向对象程序设计语言的数据结构兼容性(compatibility)。

1.6.4  提供高效查询处理的存储结构

数据库系统必须提供高效执行查询和更新的能力。由于数据库通常都存储在磁盘上,因此DBMS必须提供专门的数据结构以加快查找磁盘上所需记录的速度。为此要使用称为索引(index)的辅助文件。通常,索引都基于树形数据结构或散列数据结构,可以为磁盘查找做适当的改进。为了处理某个特定查询所需的数据库记录,必须将这些记录从磁盘复制到内存中。因此,DBMS一般都有一个缓冲(buffering)模块,用以维护内存缓冲区中的数据库部分。否则,DBMS也可以使用操作系统来完成磁盘数据的缓冲。

DBMS中查询处理与优化(query processing and optimization)模块的功能是:根据现有的存储结构,为各个查询选择一种最高效的查询执行方案。选择要创建和维护哪些索引,这个工作属于物理数据库设计与调优的范畴,而这也是DBA人员的一个职责。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节
Sun以10亿美元并购开源数据库厂商MySQL
Oracle数据库开发之PL/SQL基础应用
Oracle数据库开发基础教程
2006年数据库频道热点关注
数据库安全技术专题
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有