• MySQL 权限管理


    1、你有没有链接权限

    2、你有没有执行操作的权限(select/update等)

     

    对于1:服务器如何判断用户有没有权限链接上来?

    依据三个参数:

    你从哪来? host

    你是谁? user

    你的密码是多少? password

     

    用户的这3个信息,存储在mysql.user表中

    use mysql

    desc user;

    select host,user,password from user; //可以看到root只能通过localhost来链接

     

    cmd:

    ipconfig

    mysql -h192.168.2.101 -uroot -p //链接报错

    mysql -h127.0.0.1 -uroot -p

    mysql -hlocalhost -uroot -p //可以链接

     

    修改host域,使Ip可以链接

    update user set host = '192.168.2.101' where user = 'root';

    删除无关用户

    delete from user where user='';

    flush privileges; //一定要冲刷权限

    mysql -h192.168.2.101 -uroot -p //可以链接

    mysql -hlocahost -uroot -p //不能链接

     

    局域网访问使用%通配符 192.168.1.%

     

    如何修改用户的密码

    update user set password=password('111111') where user='root';

    flush privileges;

     

     

    user表判断你能不能进来

    db表判断用户有没有某个库的操作权

    tables_priv判断用户有没有某张表的操作权

     

    新增一个用户 在user表中全局授权

    grant [权限1,权限2,权限3,...] on *.* to user@'host' identified by '密码'  //*.*代表所有库所有表

    常用权限有:all,create,drop,insert,delete,update,select

    grant all on *.* to lisi@'192.168.2.%' identified by '';

     

    收回权限

    revoke all on *.* from list@'192.168.1.%';

    flush privileges;

     

    赋权管理某一个库 //此时user表中权限全是N 但mysql.db表中lisi 对于ecshop表有操作权限

    grant all on ecshop.* to lisi@'192.168.1.%';

     

    收回权限 //db表中无权限数据

    revoke all on ecshop.* from list@'192.168.1.%';

     

    赋与表级别权限 //此时user表中lisi无权限 db表中无lisi数据 tables_priv中有lisi针对表的权限

    grant insert,update,select on test_database.test_table to lisi@'192.168.1.%'; //用户可以增改查,但不能删数据

    提示:如果在开发中,某张表的数据,是原始数据,不能被删除,除了在php的业务逻辑上来控制,还可以从mysql用户权限管理来控制

    mysql的权限控制,甚至可以精确到列

    常用的授权权限在手册中 grant部分

     

  • 相关阅读:
    HTML标签语义化对照表
    C#自定义分页控件3.0
    并发小工具
    C#方法
    我所知道的一个简单类
    等快递无聊旋转字符串
    委托
    撒列实现关键字过滤,速度可快了
    垃圾回收代
    递归再一次让哥震惊了
  • 原文地址:https://www.cnblogs.com/shenmiyang/p/14989691.html
Copyright © 2020-2023  润新知