首页 > 数据库 > 文库 > 正文

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

2024-09-07 22:12:22
字体:
来源:转载
供稿:网友

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表