MySQL5.7 添加用户,删除用户与授权

  今天在开始一个新项目的时候遇到了一个问题, 原有的服务器上有很多数据库而这个新的项目有许多新人加入,对开发不是很熟悉,所以为了防止旧的数据库出现问题,就准备新建用户和数据库让这个新的用户只能访问新建的数据库,不能访问其它的数据库.

MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束):

1.新建用户

  1.1 登录MYSQL(登陆的账户必须是拥有最高权限的账户):

  @>mysql -u root -p

  @>密码

        1.2 创建用户:

        CREATE USER 'guest2'@'%' IDENTIFIED BY '123456';

        新建一个用户名为guest2的用户,密码为123456,%表示可以远程连接数据库

        tips:

密码设置错误

    【原因】

        原来MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。

        使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置。影响的语句和函数有:create user,grant,set password,password(),old password。所以可以将密码设置为“字母 + 数字”的形式。


        修改后创建成功。

    1.3 然后登录一下:

  mysql>exit;

  @>mysql -u test -p

  @>输入密码

  mysql>登录成功

2.为用户授权

  授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";

  2.1 登录MYSQL(有ROOT权限),这里以ROOT身份登录:

  @>mysql -u root -p

  @>密码

  2.2 首先为用户创建一个数据库(testDB):

  mysql>create database testDB;

2.3 授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限,本次我们使用的就是这个):

   mysql>GRANT ALL PRIVILEGES ON testDB.* TO 'guest2'@'%' IDENTIFIED BY 'guest123456' WITH GRANT OPTION;

   mysql>flush privileges;//刷新系统权限表

  格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";


2.4 如果想指定部分权限给一用户,可以这样来写:

  mysql>grant select,update on testDB.* to guest2@localhost identified by 'guest123456';

  mysql>flush privileges; //刷新系统权限表

2.5 授权test用户拥有所有数据库的某些权限:

mysql>grant select,delete,update,create,drop on *.* to guest2@"%" identified by "guest123456";

     //test用户对所有数据库都有select,delete,update,create,drop 权限。

//@"%" 表示对所有非本地主机授权,不包括localhost。(localhost地址设为127.0.0.1,如果设为真实的本地地址,不知道是否可以,没有验证。)

 //对localhost授权:加上一句grant all privileges on testDB.* to guest2@localhost identified by 'guest123456';即可。

3. 删除用户(需要登陆最高权限的账号)

DROP USER 'a'@'%';

你可能感兴趣的:(MySQL5.7 添加用户,删除用户与授权)