使用系统目录

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 标准,那么数据库服务 器将验证指定所有者的新名称是否尚不存在。) 用户具有创建表和授予用户特权的许可权。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值