GBase 8s 在您创建数据库时自动生成系统目录表。可以如同查询数据库中的任何其他表那样查询系统目录表。新创建的数据库的系统目录表位于称为数据库空间的公共磁盘区
域中。每个数据库都有它自己的系统目录表。系统目录中的所有表和视图都有前缀 sys(例
如:系统目录表 systables)。
并非所有具有前缀 sys 的表都是系统目录表。例如:数据库 syscdr 支持 Enterprise
Replication 功能部件。但是,非目录表具有大于等于 100 的 tabid。系统目录表都具有
小于 100 的 tabid。有关数据库服务器指定给表、视图、同义词和(GBase 8s 中)序列
对象的 tabid 号码的更多信息,请参阅本节后面部分和 SYSTABLES。
提示: 不要混淆数据库的系统目录表与 sysmaster、sysutils、syscdr 或(用于 GBase
8s)sysadmin 和 sysuser 数据库中的表。这些数据库中的表的名称也具有 sys 前缀,但
这些表包含有关整个数据库服务器的信息,数据库服务器可管理多个数据库。sysadmin、
sysmaster、sysutils、syscdr 和 sysuser 表中的信息主要对数据库服务器管理员 (DBSA) 有
帮助。另请参阅《GBase 8s 管理员指南》和《GBase 8s 管理员参考》。
数据库服务器经常访问系统目录。每次处理 SQL 语句时,数据库服务器都会访问系统
目录来确定系统特权、添加或验证表或列名等等。
例如:以下 CREATE SCHEMA 块将 customer 表及其索引和特权添加至 stores_demo 数
据库中。此块还添加了一个视图 california,它将 customer 表的数据限制为仅住在
California 的所有客户的客户姓名、公司名称和电话号码。
CREATE SCHEMA AUTHORIZATION maryl
CREATE TABLE customer (customer_num SERIAL(101), fname CHAR(15),
lname CHAR(15), company CHAR(20), address1 CHAR(20), address2
CHAR(20),
city CHAR(15), state CHAR(2), zipcode CHAR(5), phone CHAR(18))
GRANT ALTER, ALL ON customer TO cathl WITH GRANT OPTION AS maryl
GRANT SELECT ON customer TO public
GRANT UPDATE (fname, lname, phone) ON customer TO nhowe
CREATE VIEW california AS
SELECT fname, lname, company, phone FROM customer WHERE state =
'CA'
CREATE UNIQUE INDEX c_num_ix ON customer (customer_num)
CREATE INDEX state_ix ON customer (state)
要处理此 CREATE SCHEMA 块,数据库服务器首先访问系统目录来验证以下信息:
新表和视图名在数据库中尚未存在。(如果数据库符合 ANSI 标准,那么数据库服务
器将验证指定所有者的新名称是否尚不存在。)
用户具有创建表和授予用户特权的许可权。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




