• MySQL访问权限系统


    MySQL权限系统的主要功能是验证从给定主机连接的用户,并将该用户与数据库上的权限(如select, insert, update和delete)相关联。附加功能包括维护匿名用户,授予MySQL特定功能(如load data infile)和管理性操作的权限。


    MySQL权限系统具有如下限制:

    ● 不具备用户黑名单功能

    不能显式指定拒绝访问的用户列表。也就是说,你不能显式指定一个用户,让MySQL拒绝其连接;


    ● 建表删表和建库删库的权限紧密相连不可分割

    即有权限建表删表就有权限建库删库,有建库删库的权限就有建表删表的权限。也就是说,你不能为用户指定权限,使其可以在数据库中建表删表,但又不能创建或者删除数据库本身;


    ● 密码只能在全局范围内作用于一个账号

    即你不能为特定对象,如数据库,表或例程,赋予密码;


    MySQL权限系统的用户接口由SQL语句组成,如create user, grant和revoke


    在内部,MySQL将权限信息存储在「mysql」数据库的权限表中。MySQL服务器在启动时将这些权限表的内容读入内存,并基于这些内存副本进行访问控制决策


    MySQL权限系统确保所有用户只能执行自各自允许的操作。作为一个用户,当你连接到MySQL服务器时,你的身份由你连接的主机和你指定的用户名决定。当你在连接完成后发出请求时,系统将根据你的身份和你想要执行的操作来赋予权限


    MySQL使用主机名和用户名来识别你的身份,因为没有理由相信来自不同主机的相同用户属于同一个人,例如从office.example.com连接的用户joe与从home.example.com连接的用户joe可能不是一个人。MySQL通过对来自不同主机的相同用户进行区分来解决这个问题:你可以对从office.example.com连接的用户joe赋予一组权限,而对从home.example.com连接的用户joe赋予另一组权限。


    要查看给定账号的权限,请使用「show grants」语句,例如:



    MySQL访问控制包括两个阶段:

    ① 服务器根据你的身份以及你所提供的密码正确与否,接受或拒绝连接;

    ② 连接成功后,服务器将检查你所发出的每个语句,以确定你是否有足够的权限执行它。例如,如果你尝试从表中检索行或者从数据库中删除表,则服务器将验证你是否拥有表的select权限或数据库的drop权限;



  • 相关阅读:
    Auto X2021 K Increasing Sequence
    拉普拉斯平滑处理 Laplace Smoothing
    博学之
    Python-生成音乐-pyshnth
    Python-Kivy ImportError: DLL load failed: 找不到指定的模块
    Python-Word模板填充-docxtpl
    Python-文字转语音-pyttsx3
    Virtual Box中Ubuntu使用"桥接网卡"不能联网而使用"网络地址转换(NAT)"却可以上网
    STM32的HAL库中的DMA_FLAG_TCIF3_7等几个宏定义的含义
    Linux下编写互相通信的驱动模块并将其加入到内核中
  • 原文地址:https://www.cnblogs.com/chaikefusibushiji/p/7706195.html
Copyright © 2020-2023  润新知