• 【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传播出去的权限(包括直接传播与间接传播)

  • 相关阅读:
    c++23中的新功能之七三个新的扩展
    了解消息中间件的基础知识
    CATT的应用
    SpringCloud -Ribbon
    一文带你精通Git
    springmvc
    数据的内存分布笔记总结
    安装 Ubuntu
    java计算机毕业设计高原特色农产品网站设计源码+mysql数据库+系统+lw文档+部署
    如何将CAD的内置对话框作为当前对话框的子对话框调出
  • 原文地址:https://blog.csdn.net/littlegengjie/article/details/134292411