首 页IT知识库翔宇问吧收藏内容
当前位置:翔宇亭IT乐园IT知识库数据库SQL专栏

使用SQL语句给用户授权的方法

减小字体 增大字体 作者:本站  来源:本站原创  发布时间:2011-02-14 14:42:18

SQL使用GRANT语句向用户授予操作权限,GRANT语句的一般格式为:

GRANT <权限> [,<权限>,…]
   [ON <对象类型> <对象名>]
   TO <用户 | 角色>[,<用户 | 角色>,…] | PUBLIC
    [WITH GRANT OPTION]

对此语句的说明如下:

(1)不同类型的操作对象具有不同的操作权限,如表3.17所示。

SQL授权语句

(2)接受授权的用户可以是一个或多个具体的用户,也可以是角色或PUBLIC,指定PUBLIC即把权限授予数据库中的所有用户。

(3)授予关于属性列的权限时,必须明确给出相应的属性列名称。

(4)如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予其他用户,但不允许循环授权,即被授权者不能把权限再授回给授权者或其祖先,如图3.3所示。如果没有指定WITH GRANT OPTION子句,则获得某种权限的用户只能使用该权限,不能把权限再授予其他人。

SQL授权

 例3.72 把查询Student表的权限授给用户user1。

GRANT SELECT ON TABLE Student TO user1

例3.73 把对Student表和Course表的全部操作权限授予user2和user3。

GRANT ALL PRIVILIGES ON TABLE Student,Course TO user2, user3

例3.74 把对表SC的查询权限授予给所有用户。

GRANT SELECT ON TABLE SC TO PUBLIC

例3.75 把查询Student表和修改学生姓名的权限授予给用户user4。

GRANT SELECT,UPDATE(Sname) ON TABLE Student TO user4

例3.76 把对表SC的INSERT权限授予user5用户,并允许其把此权限再授予其他用户。

GRANT INSERT ON TABLE SC TO user5 WITH GRANT OPTION

执行此SQL语句后,user5不仅拥有了对表SC的INSERT权限,还可以把此权限再授予他人。

从上面的几个例子可以看出,SQL的授权机制非常灵活。用户对自己建立的基本表和视图拥有全部的操作权限,也可以将这些权限授予其他用户。用户可以一次向一个用户授权,如例3.72所示。也可以一次向多个用户授权,如例3.73和例3.74所示;还可以一次传播多个同类对象的权限,如例3.73所示;甚至一次可以完成对基本表、视图和属性列这些不同对象的授权,如例3.75所示。


本文源自:翔宇亭——IT乐园(http://www.biye5u.com),转载请保留此信息!

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2022 biye5u.com. All Rights Reserved.