zoukankan      html  css  js  c++  java
  • MySQL用户与权限

    用户连接到mysql,并做各种查询,在用户和服务器中间分为两个阶段:

    1:用户是否有权连接上来

    2:用户是否有权执行此操作(如select,update等等)

    先看第一个阶段:服务器如何判断用户是否有权连接上来

    依据三个参数:

    你从哪来? host

    你是谁?    user

    你的密码是多少? password

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

    ---------------------------------------------

    修改host域,使IP可以连接

    update user set host='ip地址' where user='root';
    flush privileges;#冲刷权限

    我们也可以删除用户使此用户无法连接:

    delete from user where user='';
    flush privileges;

    -------------------------

    如何修改用户的密码:

    在mysql8.0版本以上修改密码的话使用如下语句完成:

    use mysql
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
    FLUSH PRIVILEGES; 

    新增一个用户并授权:

    MySQL8.0以下的使用下面的语句

    grant [权限1,权限2,权限3......]on 哪个库.哪张表 to 用户@'host' identfied by 'password';

    MySQL8.0以上需要将创建用户和授权分开进行:

    #创建新用户: 
    create user 'lisi'@'192.168.3.110' identified by'111111';
    #给新用户授权:
    grant all privileges on *.* to 'lisi'@'192.168.3.110';

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

     我们来查看一下lisi用户的全局权限:

    可以看到他的权限是非常大的;那么现在我们要收回权限:

    #收回权限
    revoke all on *.* form 'lisi'@'192.168.3.110';

    那么我们授权lisi用户的test库权限:

    grant all on test.* to 'lisi'@'192.168.3.110';

    然后我们再看lisi用户的全局权限:

    select * from user where user='lisi'G

    我们看到它的全局权限变成了NO,但是他真的就没有任何权限吗?

    其实不是的,他在db表的记录里还有权限:

    select * from db where user='lisi'G

    而且我们show databases;可以发现他还有操作test库的权力:

     -------------------------------------------

    同样的,我们使用grant all on test.goods to 'lisi'@'192.168.3.110';这条语句还能赋予lisi操作goods表的权力。

  • 相关阅读:
    iscroll中使用input框的话是导致无法选中input框
    JS中setInterval()和clearInterval()的使用以及注意事项
    连接oracle出现的问题以及解决办法
    Oracle数据库数据显示乱码问题解决方法。
    Android4.4以上Uri转换成绝对路径的工具类
    安卓,调用相机并适配6.0后
    问题-解决
    ORACLE相关
    PL/SQL表结构/数据的导出
    springMVC笔记
  • 原文地址:https://www.cnblogs.com/wanghaoyu666/p/11326351.html
Copyright © 2011-2022 走看看