第三章 关系数据库标准语言SQL

第一节 第二节 第三节 第四节

第四节 视 图    (1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)
3.6.1 授 权
        GRANT语句的一般格式:GRANT <权限>[,<权限>]... [ON <对象类型> <对象名>]
        TO <用户>[,<用户>]...[WITH GRANT OPTION];
谁定义?DBA和表的建立者(即表的属主)。REVOKE功能:将对指定操作对象的指定操作权限授予指定的用户。
    (1) 操作权限
        
    (2) 用户的权限
    建表(CREATETAB)的权限:属于DBA,DBA授予普通用户。基本表或视图的属主拥有对该表或视图的一
切操作权限。接受权限的用户:一个或多个具体用户;PUBLIC(全体用户)。
     (3) WITH GRANT OPTION子句
    获得某种权限的用户还可以把这种权限再授予别的用户。没有指定WITH GRANT OPTION子句:获得某种
权限的用户只能使用该权限,不能传播该权限。
    例1 把查询Student表权限授给用户U1。
        GRANT SELECT ON TABLE Student TO U1;
    例2 把对Student表和Course表的全部权限授予用户U2和U3。
        GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3;
    例3 把对表SC的查询权限授予所有用户
        GRANT SELECT ON TABLE SC TO PUBLIC;
    例4 把查询Student表和修改学生学号的权限授给用户U4
        GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;
    SQL收回权限的功能——REVOKE语句的一般格式为:
        REVOKE <权限>[,<权限>]...[ON <对象类型> <对象名>] FROM <用户>[,<用户>]...;
    功能:从指定用户那里收回对指定对象的指定权限
    例6 把用户U4修改学生学号的权限收回
        REVOKE UPDATE(Sno) ON TABLE Student FROM U4;
    例7 收回所有用户对表SC的查询权限
        REVOKE SELECT ON TABLE SC FROM PUBLIC;
    例8 把用户U5对SC表的INSERT权限收回
    REVOKE INSERT ON TABLE SC FROM U5;
    权限的级联回收——系统将收回直接或间接从U5处获得的对SC表的INSERT权限:
        →U5→U6→U7
    收回U5、U6、U7获得的对SC表的INSERT权限:
        ←U5←U6←U7
    DBA拥有对数据库中所有对象的所有权限,并可以根据应用的需要将不同的权限授予不同的用户。用户
对自己建立的基本表和视图拥有全部的操作权限,并且可以用GRANT语句把其中某些权限授予其他用户。被
授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户。所有授予出去的权力在必要
时又都可以用REVOKE语句收回。

吉林大学网络教育学院 版权所有