• 【MySQL篇】授权:授权与回收


    前言 

            SQL通过GRANTREVOKE语句实现向用户授予或收回对数据的操作权限。

            发出GRANT法人可以是数据库管理员、数据库对象创建者(即属主Owner)、拥有该权限并且可以传播的用户。

            SQL不允许循环授权。

    权限与可执行的操作对照表
    拥有的权限可否执行的操作
    CREATE USERCREATE SCHEMACREATE TABLE登录数据库执行数据查询和操作
    DBA可以可以可以可以
    RESOURCE不可以不可以可以可以
    CONNECT不可以不可以不可以可以,但是要拥有相应权限

    1、授权

            GRANK :对指定操作对象(表、视图等)的指定操作权限(插入、删除等)授予指定的用户(user)。

    一般格式为:

            WITH GRANT OPTION:如果指定该子句,则获得某种权限的用户可以把这种权限再授予其他的用户(可以传播该权限)。如果不指定该子句,则用户只能自己使用该权限,无法传播该权限。

     例1:把查询Student表的权限授予给用户U1,不允许其传播。

    1. GRANT SELECT
    2. ON TABLE Student
    3. TO U1;

     

    例2:把对Student表和Course表的全部操作授权给用户U2、U3,不允许其传播。

    1. GRANT ALL PRIVILEGES
    2. ON TABLE Student,Course
    3. TO U2,U3;

    例3:把对SC表的查询操作授权给所有用户,不允许其传播。

    1. GRANT SELECT
    2. ON TABLE SC
    3. TO PUBLIC;

    例4:把查询Student表和修改学生学号的权限授予给用户U4,允许其传播。

    1. GRANT UODATE(Sno),SELECT
    2. ON TABLE Student
    3. TO U4
    4. WITH GRANT OPTION;

            授予U4用户对表的某一列的更新权限,在授予时必须明确指出相应的属性列。且U4可以将获得的权限进行传播。

    2、收回授权

            REVOKE:授予用户的权限可以由数据库管理员或其他授权者用REVOKE语句收回。

    一般格式为:

     例1:把用户U1查询Student表的权限收回。

    1. REVOKE SELECT
    2. ON TABLE Student
    3. FROM U1;

    例2:收回所有用户对SC表的查询权限。

    1. REVOKE SELECT
    2. ON TABLE SC
    3. FROM PUBLIC;

    例3:收回U4对 Student表的查询权限。

    1. REVOKE SELECT
    2. ON TABLE Student
    3. FROM U4 CASCODE;

     将U4的SELECT权限收回的同时,级联(CASDCODE)收回U4传播出去的权限(包括直接传播与间接传播)

  • 相关阅读:
    GoogLenet网络详解
    高性能MySQL实战第05讲:高性能索引该如何设计(上)
    JS前端使用Blob和File读取文件的操作代码
    全网 灰色主题实现原理
    自己的回忆录,记录自己的青春
    接口协议之抓包分析 TCP 协议
    6.1数值积分问题&6.2插值型求积公式
    hero博客搭建
    后端面经学习自测(二)
    pip和conda的环境管理,二者到底应该如何使用
  • 原文地址:https://blog.csdn.net/littlegengjie/article/details/134292411