zoukankan      html  css  js  c++  java
  • 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权限;



  • 相关阅读:
    结对项目——自动生成小学四则运算题目
    个人项目作业
    自我介绍+软工5问
    团队作业3--需求改进&系统设计
    团队作业2-需求规格说明书
    团队项目-第一周
    结对项目:四则运算表达式生成程序
    个人项目作业--WC的实现
    自我介绍+软工五问
    团队作业3-需求改进&系统设计
  • 原文地址:https://www.cnblogs.com/chaikefusibushiji/p/7706195.html
Copyright © 2011-2022 走看看