zoukankan      html  css  js  c++  java
  • MySQL用户管理及权限管理

    MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用。如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接。
    
    在 MySQL 命令行模式下输入如下命令可以为 MySQL 创建一个新用户:
    
    CREATE USER username IDENTIFIED BY 'password';
    新用户创建完成,但是此刻如果以此用户登陆的话,会报错,因为我们还没有为这个用户分配相应权限,分配权限的命令如下:
    
    GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
    授予username用户在所有数据库上的所有权限。
    
    如果此时发现刚刚给的权限太大了,如果我们只是想授予它在某个数据库上的权限,那么需要切换到root 用户撤销刚才的权限,重新授权:
    
    REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';
    GRANT ALL PRIVILEGES ON wordpress.* TO 'username'@'localhost' IDENTIFIED BY 'password';
    甚至还可以指定该用户只能执行 select 和 update 命令:
    
    GRANT SELECT, UPDATE ON wordpress.* TO 'username'@'localhost' IDENTIFIED BY 'password';
    这样一来,再次以username登陆 MySQL,只有wordpress数据库是对其可见的,并且如果你只授权它select权限,那么它就不能执行delete 语句。
    
    另外每当调整权限后,通常需要执行以下语句刷新权限:
    
    FLUSH PRIVILEGES;
    删除刚才创建的用户:
    
    DROP USER username@localhost;
    仔细上面几个命令,可以发现不管是授权,还是撤销授权,都要指定响应的host(即 @ 符号后面的内容),因为以上及格命令实际上都是在操作mysql 数据库中的user表,可以用如下命令查看相应用户及对应的host:
    
    SELECT User, Host FROM user;
    当然,这个表中还包含很多其它例如用户密码、权限设置等很多内容,操作时候尤其需要小心。
    重新修改登陆密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

    参考地址:http://www.libuchao.com/2013/04/06/mysql-user-and-privilege

  • 相关阅读:
    JQuery的ajax函数执行失败,alert函数弹框一闪而过
    ThinkPHP5.1中数据查询使用field方法数组参数起别名时遇到的问题
    Linux Web服务器集群搭建
    三层架构之UI层
    Aircoinst 三层架构ASP.NET开源
    [教程]KALI LINUX 2.0 2019 更新国内源
    工厂模式
    Java 实现序列化和反序列化
    Java实现缓冲流 编码 & 解码
    Java使用IO流读取文件显示到控制台2
  • 原文地址:https://www.cnblogs.com/liubei/p/5436023.html
Copyright © 2011-2022 走看看