友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
一世书城 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

SQL 21日自学通(V3.0)(PDF格式)-第66章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






并把它提供给你的用户  这项技术为你提供了相当大的灵活性 



    删除同义词的语法如下 



SYNTAX 



    SQL》 drop 'public' synonym synonym_name 



注   到现在为止  你应该明白保持有 DBA  角色的用户最少的重要性了吧                              因为具有这一 



    角色的用户可以运行数据库中的任何命令及操作  但是请注意                             在 ORACLE 和 Sybase 



    中你只有成为 DBA 角色的用户才可以从数据库中引入或导出数据 



                                                                              252 


…………………………………………………………Page 253……………………………………………………………

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



使用 WITH GRANT OPTION 子句 



    如果 JILL  想把她的 UPDATE 权限赋给 JACK 时需要谁来完成这项工作  最初你可能 



会认为应该由 JILL      来完成     因为她有 UPDATE 权限        她应该可以为其他用户受予这个权 



限  但是     如果你使用早些时候的 GRANT 语句  JILL 并不能为其他用户授权 



SQL》 GRANT SELECT; UPDATE(SALARY) ON Bryan。SALARIES TO Jill 



    下边是我们在今天早些时候讲过的 GRANT 语句的语法 



SYNTAX 



    GRANT {object_priv | ALL 'PRIVILEGES'} ' (column '; column'。。。) ' 



    '; {object_priv | ALL 'PRIVILEGES'} ' (column'; column' 。。。) ' ' 。。。 



    ON 'schema。'object TO {user | role | PUBLIC} '; {user | role | PUBLIC}' 。。。 



    'WITH GRANT OPTION' 



    看到在末尾的 WITH  GRANT  OPTION        语句了吗     当在给对象授权时如果使用了这个 



选项    那么该权限就可以被传给其他的用户                所以    如果你想让 JILL  具有给 JACK 授权的 



能力  那么你应该像下边这样使用 GRANT 语句 



INPUT 



    SQL》 GRANT SELECT; UPDATE(SALARY) 



        2    ON  Bryan。SALARIES  TO  JILL 



      3  WITH GRANT OPTION 



OUTPUT 



          Grant succeeded。 



      当以 JILL  的身份登录时就可以使用下边的语句 



INPUT/OUTPUT 



    SQL》 GRANT SELECT; UPDATE(SALARY) ON Bryan。SALARIES TO JACK 



        Grant succeeded。 



总结 



    如果数据库的管理人员如果对数据库的安全考虑不周常常会导致许多问题                                幸运的是 



SQL 提供了几个非常有用的命令来实现数据库的安全性 



                                                                         253 


…………………………………………………………Page 254……………………………………………………………

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



   用户最初可由 CREATE  USER  命令来创建   这里可以设定用户名和密码       当用户的帐 



号生效以后  必须为其指定角色以使其可以工作  在 ORACLE  中有三种可用的角色  分别 



了 Connect Resource  和 DBA  角色  每种角色有不同的访问数据库的资格  Connect  最少 



而 DBA 则拥有全部的访问能力 



   GRANT 命名可以对用户进行授权  REVOKE     命令则可以取消对用户的授权       权限可 



分为对象权限和系统权限  系统权限应该严格控制           不能授予没有使用经验的用户        如果 



他们得到了这种权限他们就可能        也许是不经意之间      毁坏你辛苦构建的数据库  对象权 



限则可以让用户具有访问个别的由已存在用户所创建的模块中的对象的能力 



   所有的这些技术和语句都为 SQL  的用户提供了相当广泛的用以设置安全性的工具  尽 



管我们讨论的主要是 ORACLE  7  的安全特性  但是你可以在设计你自己的数据库时用到这 



些信息  切记不论你使用哪一种数据库产品         它都提供了一定程度的安全性 



问与答 



问  我知道安全性是需要的  但是否 ORACLE 做的太多了 



答  不  一点也不多    尤其是当在大型的多用户应用场合时更是这样           由于使用数据库的 



不同用户所做的工作也并不相同        所以你需要限制用户让他们能做什么或不能做什么            用 



户应该只能进行他所处角色和权限许可内的工作 



问  看来 DBA  用户在创建我的帐号时已经知道了我的密码         是否是这样    这是一个安全 



问题 



答  确实是这样  DBA  创建了你的用户和密码       所以你应该在收到创建信息以后立即使用 



ALTER USER 命令来更改 ID 和密码 



校练场 



1  下边的语句是否是错误的 



  SQL》 GRANT CONNECTION TO DAVID 



2  对与错  当删除用户时所有属于用户对对象都会随之删除 



3  如果你创建了一个表并对它使用了 SELECT 权限对象为 PUBLC 时会有什么问题 



4  下边的 SQL 语句是否正确 



   SQL》 create user RON  identified by RON 



                                                       254 


…………………………………………………………Page 255……………………………………………………………

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



5   下边的 SQL 语句是否正确 



    SQL》 alter RON identified by RON 



6   下边的 SQL 语句是否正确 



    SQL》 grant connect; resource to RON 



7   如果表为你所有  别人如何才能从表中选择数据 



练习 



    作为数据库安全性的练习          请你创建一个表  然后再创建一个用户              为该用户设置不 



同的安全性并测试 



                                                                   255 


…………………………………………………………Page 256……………………………………………………………

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



第 13 天  高级 SQL 



目标 



   在之前的 12 天中  我们学习了许多关于如何写出强在的 SQL  查询以从数据库中获得 



数据  我们也简要的学习了如何进行数据库的设计以数据库安全性问题               而在今天的高级 



SQL 部分  我们将主要学习以下内容 



    l  临时表 



    l  游标 



    l  存贮过程 



    l  触发机制 



    l  内嵌 SQL 



注 在今天的例子中我们使用 ORACLE 的 PL/SQL 和 MicroSoft SQL Server  的 Transact…SQL 



   来实现  我们尽可能使我们的例子可以适用于这两种风格的 SQL            你不必为此需要得 



   到一个 ORACLE 或 SQL Server  的副本  实际的数据库版本的选择是依据你的需要而定 



   的  如果你已经阅读了足够的可以创建一个项目所需要的知识  那你是没有选择的机 



   会的 



   注  尽管你可以在大多数的数据库产品上应用本书中所给出的例子              但是今天的内容 



并不适用于这句话  许多数据库供应商仍没有提供临时表  存贮过程以及触发机制                 请检 



查你的数据库文档  看你所喜爱的数据库系统是否支持这些特性 



临时表 



   我们要讨论的第一个高级主题是临时表的用法           这是一种简单的临时存在于数据库系 



统当中的表格  当结束数据库的联接或退出登录以后它们会被自动地删除 Transact…SQL  在 



TempDB 中创建临时表  这个数据库是在你安装 SQL…SERVER 时创建的  创建临时表可以 



使用两种语法格式 



SYNTAX 



SYNTAX 1 



                                                       256 


…………………………………………………………Page 257……………………………………………………………

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



     create table #table_name (field1 datatype; 



                                  。 



                                  。 



                                  。 



                             fieldn datatype 



     语法 1 用以在 TempDB  中创建一个表  该表由 Create  Table  命令以及创建表时的日期 



和时间组合而成一个唯一的表名                       临时表只可由它的创建者使用                     五十个用户可以在同时 



运行下边的命令 



     1》 create table #albums ( 



     2》 artist char(30); 



     3》 album_name char(50); 



     4》 media_type int) 



     5》 go 



     表名开头的#标志是 SQL  用以标识临时表的标志                             五十个用户中每一个都可以获得一 



个他可以使用的表              每一个用户都可以放心地插入                     更新  删除表中的数据而不必担心其 



它的用户使该表中的数据失效                     该表也可以使用下边的命令来手动删除 



     1》 drop table #albums 



     2》 go 



     当用户退出 SQL…SERVER            时该表也可以被自动地删除  如果你是在自态 SQL  联接情 



况下使用该语句  例如 SQL…SERVER  的 DB…LIBRARY                          那么当动态联接被终止时该表也 



会被自动地删除 



     语法 2 给出了另一种在 SQL…SERVER 中创建临时表的方法  该语法与使用语法 1 有着 



不同的结果  所以你要注意这两种语法之间的差别 



SYNTAX 



     SYNTAX 2: 



     create table tempdb。。tablename (field1 datatype; 



                                       。 



                                       fieldn datatype) 



     使
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!