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

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

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




    Revoke succeeded。 



    SQL》 REVOKE RESOURCE FROM Bryan 



    Revoke succeeded。 



                                                                        243 


…………………………………………………………Page 244……………………………………………………………

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



   拥有 DBA 角色的 Bryan 现在可以做他想做的任何工作 



用户权限 



   在你决定好对你的用户应用何种角色以后             你需要决定让你的用户具有使用哪种数据 



库对象的权利  ORACLE    中称之为许可权限  该权限依据你为用户所定的角色的不同而不 



同  如果你创建了一个对象        你可以将该对象的许可权赋予其它的用户以使他们也具有访 



问权  ORACLE 定义了两种可以赋予用户的权利 — — 系统许可权与对象许可权               见表 12。1 



和表 12。2 



   系统许可权应用于整个系统  赋予系统许可权的语法如下 



SYNTAX 



   GRANT system_privilege TO {user_name | role | PUBLIC} 



   'WITH ADMIN OPTION' 



   如果使用了 WITH  ADMIN  OPTION 选项就允许拥有该权限的人将该权限应用给其它 



的用户 



用户使用视图的权利 



   下边的命令将允许系统中的所有用户都具有在自己的模块中创建视图和访问视图的能 



力 



INPUT 



   SQL》 GRANT CREATE VIEW  TO PUBLIC 



OUTPUT 



   Grant succeeded。 



分析 



   PUBLIC  关键字的意思就是每个人都有创建视图的权利            很明显  系统权限允许受权 



人访问几乎全部的系统的设置         所有系统权限只应只能给予特定的人或需要使用系统权限 



的人  表 12。1 显示出了你可以在 ORACLE 7 的帮助文件中找到的系统权限 



警告   当赋予权限给 PUBLIC  时必须小心  它可能会给所有用户以访问数据库的权限                尽 



     管有一些人你是不想让他拥有这一权限的 



                                                            244 


…………………………………………………………Page 245……………………………………………………………

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



                     表 12。1 在 ORACLE 7  中的系统权限 



  System Privilege                 Operations Permitted 

ALTER ANY INDEX   允许受权人更改任何模块中的索引 

ALTER ANY PROCEDURE 允许受权人更改任何的存储过程        函数并打包到任何模块中 

ALTER ANY ROLE    允许受权人更改数据库中的任何角色 

ALTER ANY TABLE   允许受权人更改模块中的表和视图 

ALTER ANY TRIGGER 允许受权人能够  不能或编译任何模块中的触发机制 

ALTER DATABASE    允许受权人改变数据库 

                  允许受权人更改用户  该权限允许受权人改变其它用户的密码或鉴定方 

ALTER USER        法  指定配额或表空间  设置默认的或临时的表空间  指定一个profile 

                  或默认角色 

CREATE ANY INDEX  允许受权人在任何模块的任何表中创建索引 

CREATE ANY PROCEDURE 允许受权人创建存储过程     函数并打包到任何模块中 

                  允许受权人在任何模块内创建表          创建表的模块的所有者必须拥有配额 

CREATE ANY TABLE 

                  及表空间以存放表 

CREATE ANY TRIGGER 允许受权人在与任何模块相关联的表的模块中创建触发机制 

CREATE ANY VIEW   允许受权人在任何模块中创建视图 

CREATE PROCEDURE  允许受权人创建存储过程        函数并打包到他们自己的模块中 

CREATE PROFILE    允许受权人创建profiles。 

CREATE ROLE       允许受权人创建角色 

CREATE SYNONYM    允许受权人在他们自己的模块中创建同义字 

                  允许受权人在他们自己的模块中创建表  要创建一个表  受权人必须有 

CREATE TABLE 

                  表空间配额以存放表 

CREATE TRIGGER    允许受权人在他们自己的模块中创建数据库触发机制 

                  允许受权人创建用户  该权限也允许创建人指定表空间配额                设置默认 

CREATE USER 

                  和临时的表空间      并指定profile作为CREATE USER语句的一部分 

CREATE VIEW       允许受权人在他们自己的模块中创建视图 

DELETE ANY TABLE  允许受权人从任何模块的表和视图中删除行或截表 

DROP ANY INDEX    允许受权人从任何模块中删除索引 

DROP ANY PROCEDURE 允许受权人删除任何模块中的包  存储过程及函数 

DROP ANY ROLE     允许受权人删除角色 

DROP ANY SYNONYM  允许受权人删除任何模块中的同义字权限 

DROP ANY TABLE    允许受权人删除任何模块中的表 

DROP ANY TRIGGER  允许受权人删除任何模块中的数据库触发机制 

DROP ANY VIEW     允许受权人删除任何模块中的视图 

DROP USER         允许受权人删除用户 

                  允许受权人执行过程或函数  独立的或打包的             或引用任何模块中的全 

EXECUTE ANY PROCEDURE 

                  局变量 

GRANT ANY PRIVILEGE 使受权人具有全部系统特权 

GRANT ANY ROLE    使受权人具有全部数据库角色 

INSERT ANY TABLE  允许受权人在任何模块的表或视图中插入行 

LOCK ANY TABLE    允许受权人锁定任何模块中的表和视定 

SELECT ANY SEQUENCE 允许受权人引用其它模块中的序列 

SELECT ANY TABLE  允许受权人查询任何模块中的表  视图或进行映像 

UPDATE ANY ROWS   允许受权人更新表中的行 



       对象权限是指可以在数据库中使用的对象的权限               表 12。2  中给出了所有了 ORACLE 



    中的对象权限 



                                                                 245 


…………………………………………………………Page 246……………………………………………………………

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



ALL                      你可以使用下边的 GRANT 语句来对其它用户授权访问你的表 



ALTER                    SYNTAX 



DELETE 

                         GRANT {object_priv | ALL 'PRIVILEGES'} ' (column 

EXECUTE 

                         '; column'。。。) ' 

INDEX 



INSERT                   '; {object_priv | ALL 'PRIVILEGES'} ' (column 



REFERENCES               '; column' 。。。) ' ' 。。。 



SELECT 

                         ON 'schema。'object 

UPDATE 

                         TO {user | role | PUBLIC} '; {user | role | PUBLIC}' 。。。 



                         'WITH GRANT OPTION' 



      如果你想取消对某个对象对于某人的授权  你可以使用 REVOKE 语句                                   语法如下 



  SYNTAX 



      REVOKE {object_priv | ALL 'PRIVILEGES'} 



      '; {object_priv | ALL 'PRIVILEGES'} ' 



      ON 'schema。'object 



      FROM {user | role | PUBLIC} '; {user | role | PUBLIC}' 



      'CASCADE CONSTRAINTS' 



  从建表到角色授权 



      创建一个名字为 SALARIES  的表  结构如下 



  INPUT 



      SQL》 CREATE TABLE SALARIES ( 



          2    NAME  CHAR(30); 



          3    SALARY  NUMBER; 



          4    AGE  NUMBER); 



  OUTPUT 



      Table created。 



      现在  来创建两个用户  Jack 的Jill 



  INPUT/OUTPUT 



      SQL》 create user Jack identified by Jack 



                                                                                       246 


…………………………………………………………Page 247……………………………………………………………

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



    User created。 



    SQL》 create user Jill identified by Jill 



    User created。 



    SQL》 grant connect to Jack 



    Grant succeeded。 



    SQL》 grant resource to Jill 



    Grant succeeded。 



分析 



    到现在为止        你已经创建了两个用户              并且为每个用户分了不同的角色                  因此  当他 



们在数据库中进行工作时有着不同的能力  在最初创建的表中有如下内容 



INPUT/OUTPUT 



    SQL》 SELECT * FROM SALARIES; 



         NAME              SALARY      AGE 

         JACK               35000       29 

         JILL               48000       42 

         JOHN               61000       55 



    在本例中你可以按着自己的意愿为该表分配不同的权限                              我们假定你具有 DBA  角色 



因而具有系统中的一切权利  即使你不是 DBA  角色  你仍然可以对 SALARIES                               表进行对 



象授权      因为你是它的所有者 



     由于JACK 的角色了 Connect         所以你只想让他有使用 SELECT 语句的权利 



INPUT/OUTPUT 



    SQL》 GRANT SELECT ON SALARIES TO JACK 



    Grant succeeded。 



    因为 JILL  的角色为 Resource       你允许他对表进行选择和插入一些数据  或是严格一些 



允许 JILL 修改 SALARIES 表中 SALARY 字段的值 



INPUT/OUTPUT 



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



    Grant succeeded。 



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