DB2 基础: 如何从 DB2 UDB 系统编目中获得有用的信息
2010-07-20 00:00:00 来源:WEB开发网简介
我们所知道的所有关于数据库的信息几乎都可以在称作 系统编目的元数据存储库中找到。元数据是 关于数据库中数据的信息。元数据与数据本身是分开来维护的。系统编目描述数据的逻辑和物理结构。DB2 UDB 系统编目(或简称为“编目”)由很多表和视图组成,这些表和视图由数据库管理器来维护。在创建一个数据库时,也会顺带创建一组编目表和视图。这些编目描述了数据库对象,例如表、列和索引,并包含关于用户所拥有的访问这些对象的访问类型的信息。将数据库对象和特权添加到数据库中时,编目表也会随之增长。在创建、修改或删除一个对象时,数据库管理器会插入、更新或删除编目表中描述该对象以及描述该对象与其他对象之间的关系的行。
当然,不能显式地创建或删除这些系统编目表,但是可以查询和显示这些表的内容。这些视图中收藏了丰富的有用信息,其中包括可以帮助您理解数据库如何运行的信息。在本文中,我将通过实际的例子展示如何从 DB2 UDB 系统编目检索有用的信息。
系统编目基表(SYSIBM 模式)
编目表是在 SYSIBM 模式下创建的,存储在 SYSCATSPACE 表空间中。分区数据库的编目表只存储在发出 CREATE DATABASE 命令时所在的那个分区上。有些编目表还存在父子关系。例如,SYSIBM.SYSCOLAUTH 包含列级权限的详细信息,它是 SYSIBM.SYSTABAUTH 的子表,后者记录了表级权限。
很多组成系统编目的表存储了关于数据库对象的信息,这些表的名称标识了它们所描述的对象。例如 SYSINDEXES、SYSTRIGGERS 和 SYSVIEWS。根据所存储数据的类型,可以将编目表分成很多类。例如:
授权(Authorization) 数据存储在诸如 SYSDBAUTH(用于数据库级的权限)、SYSTBSPACEAUTH(用于表空间上的权限)、SYSTABAUTH(用于表和视图上的权限)以及 SYSCOLAUTH(用于列级权限)之类的表中。
更多精彩
赞助商链接