SQL语言(五)权限与角色

文章目录

  • 权限
    • 授予权限
    • 收回权限
  • 角色
    • 创建角色
    • 给角色授权
    • 将一个角色授予其他的角色或用户
    • 角色权限的收回

权限

授予权限

GRANT <权限>[,<权限>]...
ON <对象类型> <对象名>[,<对象类型> <对象名>]...
TO <用户>[,<用户>]...
[WITH GRANT OPTION]
  • 将指定操作对象的指定操作权限授予指定的用户。发出该GRANT语句的可以是数据库管理员,也可以是该数据库对象创建者(即属主owner),还可以是已经拥有该权限的用户。接受权限的用户可以是一个或多个具体用户,也可以是PUBLIC,即全体用户。
  • 如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予其他的用户。如果没有指定GRANT WITH OPTION子句,则获得某种权限的用户只能使用该权限,不能传播该权限。
  • SQL标准规定允许具有GRANT WITH OPTION的用户把相应权限或其子集传递授予其他用户,但不允许循环授权,即被授权者不能把权限再授回给授权者或其祖先。

收回权限

REVOKE <权限>[,<权限>]...
ON <对象类型> <对象名>[,<对象类型> <对象名>]...
FROM <用户>[,<用户>]...[CASCADE|RESTRICT];

角色

创建角色

数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。因此,可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程。

CREATE ROLE <角色名>

给角色授权

GRANT <权限>[,<权限>]...
ON <对象类型> <对象名>
TO <角色>[,<角色>]...

将一个角色授予其他的角色或用户

GRANT <角色1>[,<角色2>]...
TO <角色3>[,<用户1>]...
[WITH ADMIN OPTINO]
  • 语句把角色授予某用户,或授予另一个角色。这样,一个角色所拥有的权限就是授予它的全部角色所包含的权限的总和
  • 授予者或者是角色的创建者,或者拥有在这个角色上的ADMIN OPTION,如果指定了WITH ADMIN OPTION子句,则获得某种权限的角色或用户还可以把这种权限再授予其他的角色

角色权限的收回

REVOKE <权限>[,<权限>]...
ON <对象类型> <对象名>
FROM <角色>[,<角色>]...

你可能感兴趣的:(数据库,+,MySQL)