sql语句为用户授权实例教程

发布时间:2020-11-24编辑:脚本学堂
本文介绍了使用sql语句为用户授权的方法,sql使用grant语句向用户授予操作权限,需要的朋友参考下。

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子句,则获得某种权限的用户只能使用该权限,不能把权限再授予其他人。(www.jb200.com 脚本学堂)

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所示。

您可能感兴趣的文章: