友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
第三电子书 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

SQL 21日自学通(V3.0)(PDF格式)-第59部分

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!




的增长情况和对数据库性能的统计 



   数据字典中包括有数据库设计信息的表  它们是由数据库设计语言  DDL     如 CREATE 



TABLE 所创建的 这一部分的系统目录存储着善于表列和属性的信息  表的大小       表的权 



限和表的增长情况信息  其它的对象也存储在了数据字典中如索引  触发机制        过程  包 



和视图 



   使用统计表可以给出对于特定的用户的数据库库联接和权限信息  权限主要可以分成 



两个部分  系统级权限和对象级权限  具有创建其它用户的权限是系统权限        但是访问表 



的权限属于对象权限  在数据库中也强制性地使用了任务来确保安全性         这些信息也都在 



数据字典中存储着 



   数据字典是数据库中众多有用工具之一      它是一种保证数据库组织的方法     而且特别 



像库存零售中的明细账    它是一种确保数据库完整性的机制     例如  当你创建表的时候 



数据库是如何知道你所创建的表在数据库中是否有已经存在的相同名字的呢           当你在创建 



一个查询从表中选择数据的时候     数据库又是如何知道你是否有访问这个表的权限的呢 



                                               328 


…………………………………………………………Page 329……………………………………………………………

SQL 21  日自学通(V1。0)                          翻译人  笨猪 



数据字典  是数据库的心脏  所以你应该知道如何去使用它 



用户的数据字典 



   最终用户  系统工程师和数据库管理员都在使用数据字典  那么他们是否对它了解呢 



他们的访问是直接的还是间接的呢 



   最终用户  通常是为了他们而创建数据库的客户      是间接地访问系统的目录的     当一 



个用户尝试去登录数据库的时候      数据字典将会将该用户的名字     密码  和权限做为联接 



数据库的参考  数据库也会通过它来确定是否用户具有访问特定数据的权限          最终用户最 



常用的访问数据库的方法是通过前端应用程序  现在已经开发出了许多的图形用户界面工 



具可以允许让用户非常容易地构建 SQL 语句     当登录到数据库中以后  前端应用程序会立 



即执行对数据字典的查询以定义用户可以访问的表  然后前端应用程序可能其于从数据字 



典中获得的数据来创建一个本地化的系统目录  用户则可以用这个本地化的目录来从他或 



好想要查询的表中获得数据 



   系统工程师是有着创建和设计数据库的模块  应用程序的开发以及应用程序的管理任 



务的用户   在一些公司中会使用另外一种称呼  如程序员  程序分析员       数据模块师来称 



呼他们的系统工程师     系统工程师是直接地使用数据字典来管理和开发过程的        当访问一 



个已经存在的工程的时候  访问也可以通过数据库前终应用程序         开发工具以及计算机工 



程帮助工具来获得    对于这些用户来说常用的系统目录是查询处于他的计划组中的模块 



查询应用任务及权限和查询模块开发情况的统计  在特定的计划中系统工程师也可以将数 



据字典应用于系统工程师的专用对象上 



   数据库管理员   DBAS 是数据字典中所定义的具有最大权限的用户       与其它的两组 



用户偶而也会使用系统目录不同  DBAS    将使用数据字典作为他们的日常工作      访问通常 



是通过查询的  但也可以通过数据库管理工具如 ORACLE 的 SERVER MANGER DBA 使 



用数据字典中的信息来管理用户和资源以达到数据库优化运行的目的 



   如你所见  所有的数据库用户都需要使用数据字典       更为重要的是   关系型数据库系 



统没有数据字典就无法存在了 



数据字典中的内容 



   这一部分使用两种关系型数据库系统的系统目录  Oracle  和 Sybase  的  尽管这两种数 



                                                329 


…………………………………………………………Page 330……………………………………………………………

SQL 21  日自学通(V1。0)                              翻译人 笨猪 



据库系统都有着他自己的特点       但是他们提供的功能是相同的      不要关心它们在名字上的 



不同  你只要明白数据字典的概念和它的内容就行了 



Oracle  的数据字典 



   由于每一个表都必须有一个所有者  系统目录在数据字典中的所有者是 SYS            Oracle 



的数据字典可以分为三个基本类  用户访问视图  DBA  视图       以及动态执行表— — 它也会 



以视图的形式出现  视图可以查询用户在数据字典中的用户账号信息  如权限和目录表的 



创建  DBA 可以帮助数据库管理员完成日常的工作  它允许 DBA  来管理用户和数据库中 



的其它对象  在 ORALCE  中的动态执行表也可以为 DBA 所使用并提供了对数据库的更深 



层的监视   这些视图提供了储如对过程的执行  对 ROLLBACK  段的动态使用       内存的使 



用等储如此类的统计信息  动态执行表都以 V为前缀 



Sybase  的数据字典 



   与 ORACLE  一样 Sybase 中系统表的所有者也是 SYS 该表可以被分为两个部分 



系统表和数据库表 



   系统表只能为数据库所有者所拥有  这些表定义的对象  如表和索引           为多个数据库 



所共有   另一部分表在 Sybase  SQL  Server  中的称为数据库表  这些表只与每个特定的数据 



库相关联 



ORACLE 数据字典的内部结构 



   这一部分的例子会告诉你如何从数据字典中获得信息以及如何将它应用于广大关系型 



数据库的用户也就是     最终用户   系统工程师和 DBA   ORACLE 数据字典中有大量的关 



于所有类型的数据库用户的表和视图  这是为什么我们要进一步研究 ORACLE 数据字典的 



原因 



用户视图 



   用户视图是在数据字典中的可以为全部用户所拥有的视图           一个用户对其它的用户只 



有 CREATE SESSION 的权限  所有的用户都是这样 



                                                    330 


…………………………………………………………Page 331……………………………………………………………

SQL 21  日自学通(V1。0)                                          翻译人   笨猪 



你是谁 



   在进行对数据库的无穷尽的知识的探险之前  你应该确切地知道你是谁                         在数据库中 



的字眼  和你能做什么        下边的两个例子中给出两个表中的 SELECT            语句   其中一个会告 



诉你是谁而另一个会告诉你可以使用哪些数据库 



INPUT 



    SQL》 SELECT * FROM USER_USERS 



OUTPUT 



    USERNAME  USER_ID DEFAULT_TABLESPACE TEMPORARY TABLESPACE CREATED 



    JSMITH    29     USERS           TEMP      14…MAR…97 



分析 



   USER_USERS  视图可以告诉你你在 ORACLE 中的 ID  是如何设置的  它也可以显示其 



它用户的详细情况        以及对用户的统计  默认的表大小和临时表的大小也可以被显示                      默 



认的 USER  的表的大小是指由该用户所创建的表的大小  临时表大小是对 JSMITH 所指定 



的进行排序和分组空间的大小 



INPUT/OUTPUT 



    SQL》  SELECT  *    FROM  ALL_USERS; 



     USERNAME     USER_ID    CREATED 



     SYS          0          01…JAN…97 



     SYSTEM       5          01…JAN…97 



     SCOTT        8          01…JAN…97 



     JSMITH       10         14…MAR…97 



     TJONES       11         15…MAR…97 



     VJOHNSON     12         15…MAR…97 



    正如你在上边的查询结果中所看到的那样  你可以使用 ALL_USERS                  视图你可以看到 



所有存在于数据库中的用户           但是   它不会给出像上边的那个视图那么详细的信息                 因为 



对于这一级用户来说是没有必要的             只有对于系统级用户才会需要更详细的信息 



你有哪些权限 



    现在你已经知道你是谁了          如果你可以知道你能做什么就太好了  有好几个视图都可 



以为你提供这样的信息  USER_SYS_PRIVS        视图和 USER_ROLE_PRIVS    视图可以给你最 



                                                                  331 


…………………………………………………………Page 332……………………………………………………………

SQL 21  日自学通(V1。0)                                      翻译人  笨猪 



为权威的信息 



   你可以使用 USER_SYS_PRIVS   来查看系统的权限       切记   系统权限是指你对于特定 



数据库的整体权限  这些权限并不针对任何一个对象或对象集 



INPUT 



   SQL》  SELECT  *    FROM  USER_SYS_PRIVS; 



OUTPUT 



         USERNAME         PRIVILEGE              ADM 



         JSMITH           UNLIMITED    TABLESPACE NO 



         JSMITH           CREATE    SESSION      NO 



分析 



   JSMITH 已经被赋予了两种系统级权限  除了获准的任务以外               请注意第二部分      创 



建会话  CREATE  SESSION  它包括在 ORACLE 的标准任务 CONNECT       这将会在下边 



的例子中提到 



   你可以使用 USER_ROLE_PRIVS  视图来查看你在数据库中被允许的任务信息              数据库 



任务与系统任务非常相似         当任务为权限所许可之后        可以将任务许可给该用户  切记 



在任务中可能会有对象级权限 



INPUT/OUTPUT 



   SQL》 SELECT * FROM USER_ROLE_PRIVS; 



     USERNAME    GRANTED_ROLE   ADM    DEF    OS_ 



     JSMITH      CONNECT        NO     YES    NO 



     JSMITH      RESOURCE       NO     YES    NO 



分析 



   USER_ROLE_PRIVS 视图可以让你查看允许你执行的任务            在早些时候曾经说过 



CONNECT  包含着系统权限 CREATE  SESSION   与其它的权限一样  RESOURCE  也有为 



数不多的权限  你可以查看一下给予用户的缺省任务               用户不能将这些任务再给予其它的 



用户  这对于 ADM  来说非常重要       而且该任务也不能为操作系统所允许            参见第 12  天 



的  数据库安全 



你可以访问哪些东西 



   现在你也许会问      我可以访问哪些内容呢        我已经知道了我是谁  我也知道了我的权 



                                                             332 


…………………………………………………………Page 333……………………………………………………………

SQL 21  日自学通(V1。0)                                         翻译人   笨猪 



限  但是我在哪里可以将到我的数据  你可以通常查看在数据字典中的不同的可用用户视 



图来回答这个问题  这一部分的内容对于一些视图来说很有帮助 



   也许最为基本的用户视图就是 USER_CATALOG            了  它是一个表  视图      同义字和当 



前所有的次序的简明目录 



INPUT 



   SQL》 SELECT * FROM USER_CATALOG; 



OUTPUT 



       TABLE_NAME             TABLE_TYPE 



       MAGAZINE_TBL           TABLE 



       MAG_COUNTER            SEQUENCE 



       MAG_VIEW               VIEW 



       SPORTS                 TABLE 



分析 



   这个例子中给出了为你所有的所有表和相关对象的清单                    出于简明的目的你也可以使 



用 USER_CATALOG 中的公共同义字  那就是         试一下 SELECT * FROM CAT 



   另外一个有用的视图是 ALL_CATALOG          它可以让你看到其他人拥有的表 



INPUT/OUTPUT 



   SQL》 SELECT * FROM ALL_CATALOG; 



       OWNER            TABLE_NAME       TABLE_TYPE 



       SYS              DUAL             TABLE 



       PUBLIC           DUAL              SYNONYM 



       JSMITH           MAGAZINE_TBL     TABLE 



       JSMITH           MAG_COUNTER       SEQUENCE 



       JSMITH           MAG_VIEW         VIEW 



       JSMITH           SPORTS           TABLE 



       VJOHNSON         TEST1            TABLE 



       VJOHNSON         HOBBIES          TABLE 



       VJOHNSON         CLASSES          TABLE 



       VJOHNSON         STUDENTS         VIEW 



分析 



   作为用户你可以会拥有比上表更多的对象               系统表会加入许多的表          我们可以很容易 



在将这个清单简化  ALL_CATALOG 视图与 the  USER_CATALOG  视图一样  但是它显示 



给你所有的你可以访问的表  视图           顺序    和同义字 



                                                                  333 


…………………………………………………………Page 334……………………………………………………………

SQL 21  日自学通(V1。0)                                                   翻译人    笨猪 



INPUT 



    SQL》 SELECT SUBSTR(OBJECT_TYPE;1;15) OBJECT_TYPE; 



        2                  SUBSTR(OBJECT_NAME;1;30)  OBJECT_NAME; 



        3                  CREATED; 



        4                  STATUS 



        5    FROM  USER_OBJECTS 



        
返回目录 上一页 下一页 回到顶部 1 1
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!