主内存数据库系统设计/数据库管理
第五章 数据库管理
数据库是包含和操作数据的对象的集合。每个数据库管理系统对支持的数据库总数都有限制。大多数数据库每个实例最多支持 10K 个数据库。由于虚拟地址空间限制,MMDB 可能无法每个实例支持 100 个数据库。假设数据库大小设置为 100MB,那么实例最多支持 4 GB/ 100 MB= 40 个数据库。
数据库是许多关系对象的集合,例如表、视图和约束。用户拥有数据库;所有者应向其他用户授予特殊访问权限。
- 创建和删除数据库
- 授予/撤销用户访问权限
- 根据数据库大小增加/缩减数据库
- 数据持久性
- 系统崩溃时数据库恢复
- 存档/还原
这是应用程序开发周期中 MMDB 的主要问题之一。MMDB 公开指向数据的实际指针,这可能会导致应用程序进行野指针写入。这将损坏数据。MMDB 应提供一种机制来检测此问题并在发生损坏时恢复数据库。
在 ANSI SQL-92 标准中,架构被定义为由单个用户拥有的数据库对象的集合,并形成一个单独的命名空间。命名空间是一组不能有重复名称的对象。例如,两张表可以有相同的名称,当且仅当它们都属于两个不同的架构。
架构和用户之间存在着一种隐式关系。这种关系非常密切,以至于许多数据库用户对此并不了解。如果创建用户,DBMS 将创建用户和架构,并授予用户对创建的架构的所有权限。一些 DBMS 要求用户在三个不同的步骤中执行上述操作。
每个 DBMS 至少有一个默认数据库、架构和用户,以及预设密码。这样做是为了确保 DBMS 在安装后立即准备好。
在多用户数据库管理系统中,DBMS 应提供技术,使某些用户能够访问数据库的选定部分,而无需访问数据库的其余部分。当大型集成数据库要由同一组织内的许多不同用户使用时,这一点非常重要。例如,应将敏感信息(例如薪资)对大多数其他数据库系统用户保密。DBMS 通过授权子系统来实现这一点,该子系统负责确保数据库部分免受未经授权的访问。
跨网络工作的数据库的另一个安全问题应通过数据加密来解决。加密也可以用来为数据库的敏感部分提供额外的保护。数据使用某种编码算法进行编码。未经授权的用户访问编码数据将难以解码数据。授权用户将获得解密算法,他们将使用这些算法访问数据。
数据库管理员是管理数据库系统的核心机构。DBA 的职责包括创建、删除用户、更改用户密码、授予用户对数据库对象的权限以及根据组织的策略撤销权限。DBA 负责数据库系统的整体安全。
1. 每当个人或群体需要访问数据库系统时,个人或群体必须首先申请用户帐户。如果需要合法访问数据库,DBA 将为用户创建一个新的帐户号和密码。2. 用户在需要数据库访问权限时,必须通过输入帐户号和密码登录 DBMS。
3. The DBMS checks that the account number and password are valid; if they are, the user is permitted to use the DBMS and to access the database. Application programs can also be considered as users and can be required to supply passwords.
4. 通过创建一个包含两个字段帐户号和密码的加密表或文件,可以很容易地跟踪数据库用户及其帐户和密码。此表可以由 DBMS 轻松维护。每当创建新帐户时,都会将新记录插入表中。当帐户被取消时,必须从表中删除相应的记录。5. 数据库系统还必须跟踪每个用户在每个登录会话期间对数据库应用的所有操作,其中包括用户从登录到注销时执行的数据库交互序列。当用户登录时,DBMS 可以记录用户的帐户号并将其与终端相关联,所有对数据库的操作都归因于用户的帐户,直到用户注销。特别重要的是要跟踪应用于数据库的更新操作,以便如果数据库被篡改,DBA 可以找出哪个用户进行了篡改。6. 为了记录应用于数据库的所有更新以及应用每个更新的特定用户,我们可以修改系统日志,其中包含对数据库应用的每个操作的条目,这些条目可能需要从事务失败或系统崩溃中恢复。我们可以扩展日志条目,以便它们还包含应用每个记录在日志中的操作的用户的帐户号和在线终端 ID。如果怀疑对数据库有任何篡改,则会执行数据库审计,该审计包括审查日志以检查数据库在特定时间段内应用的所有访问和操作。当发现非法或未经授权的操作时,DBA 可以确定用于执行此操作的帐户号。数据库审计对于由许多事务和用户更新的敏感数据库尤其重要,例如由许多银行出纳员更新的银行数据库。主要用于安全目的的数据库日志有时称为审计跟踪。
如果怀疑对数据库有任何篡改,则会执行数据库审计,该审计包括审查日志以检查数据库在特定时间段内应用的所有访问和操作。当发现非法或未经授权的操作时,DBA 可以确定用于执行此操作的帐户号。数据库审计对于由许多事务和用户更新的敏感数据库尤其重要,例如由许多银行出纳员更新的银行数据库。主要用于安全目的的数据库日志有时称为审计跟踪。
控制数据库 - 一个
目录数据库 - 一个
用户数据库 - 多个
通常为 8 KB。应与操作系统页面大小相同。