zoukankan      html  css  js  c++  java
  • mysql 权限控制

    1、mysql的权限是,从某处来的用户对某对象的权限。

    2、mysql的权限采用白名单策略,指定用户能做什么,没有指定的都不能做。

    3、权限校验分成两个步骤:

      a、能不能连接,检查从哪里来,用户名和密码,常见错误 ERROR 1045 (28000): Access denied for user ...

      b、能不能执行操作,粒度从粗到细,分别为:mysql.user,  mysql.db,  msql.tables_priv,  mysql.columns_priv,  mysql.proc_priv。需要注意的是,这些表各有分工,但是在权限分配上有一定的重合。可以这样理解,mysql 先检查对大范围是否有权限,如果没有再到小范围里去检查。比如:先检查对这个数据库是否有select权限,如果有,就允许执行。如果没有,再检查对表是否有select权限,一直到最细粒度,也没有权限,就拒绝执行。举例来说:要检查张三能否控制一个团,我只要先检查张三能否控制一个军,如果可以,就是有权限,如果不行,再检查张三能否控制一个师。。。。因此,粒度控制越细,权限校验的步骤越多,性能越差,需要考虑。

    4、mysql服务启动之后,就会把权限有关的表的数据读到内存中,对权限做的修改,是否会即时生效?要看情况,手动修改表数据,需要 flush privileges

    5、创建用户 create user,修改密码 set password,注意 alter user只是设置密码过期,可以登录,但是不能执行任何操作,必须从新设置密码,删除用户 drop user

    6、host+user 标示唯一的一个用户,也就是说都叫张三,从不同地方来的张三是两个用户,他们有不同的权限。

    7、那么问题来了,表中有两条记录:'root'@'192.168.1.101' 和 'root'@'%', 现在root来登录,mysql 怎么匹配呢?认为是哪个root呢?

      mysql 对用户进行了排序,先对host排序,再对user排序,小范围在前面,大范围在后面,从上往下匹配。

    8、权限授予,grant 权限 on 对象 to 用户@哪里来 identified by 密码

    9、收回权限,revoke 权限 on 对象 from 用户@哪里来,注意revoke 必须要与grant 对应,也就是说,只能收回授予的权限。

    10、那么问题来了,我授予张三 select的权限,现在revoke all privileges 也不能收回张三select的权限,因为没有对张三 grant all privileges,怎么解决这个问题?

      使用 revoke all privileges,grant option from user

    11、权限级别:从某台主机来的某个用户,对某个数据库中某个表的某些列的某部分记录,是否有权限。

    12、全局:对象是mysql服务的所有数据库,包含服务级的管理权限,比如showdown

    13、数据库:对象是某一个数据库

    14、表:对象是数据库中某个表

    15、列:对象是表中的某个列,比如:grant select (name) on xxx to xxx

    16、程序:对象是存储过程和方法。

    17、information_scheme,数据库和表是存放数据的,那么谁来存放 数据库和表这些信息呢? information_scheme 就是记录数据库和表的,需要注意的是,infromation_scheme没有对应的物理文件,它是mysql在内存中维护的。

    18、权限设定原则:

      a、尽量缩小权限

      b、按业务,分离用户,不同的业务对应不同的用户

      c、避免权限粒度太细,因为mysql权限检查,会影响性能。

    19、文件泄密,linux下mysql客户端执行的操作记录在文件 ~/.mysql_history中,输出重定向/dev/null

    20、密码丢失怎么办?

      a、mysql启动,增加选项重置密码

      b、mysql启动,增加选项不检查权限,登陆后修改密码,退出重启启动。

  • 相关阅读:
    MaxScript键盘控制盒子的移动
    MaxScript无需窗口的Timer
    Max用.Net的Dictionary将汉字转化为拼音
    关于技术美术的一些个人理解
    Max的工具部署与安装
    用以加强MaxScript的补充
    MaxScript 清除超出范围的关键帧
    Max2008之前版本旋转视图的函数
    面向对象设计的原则迪米特原则(转)
    LDAP资料
  • 原文地址:https://www.cnblogs.com/nzbbody/p/4521267.html
Copyright © 2011-2022 走看看