mysql 用户和权限控制

  1. 添加用户

    //只允许指定ip连接
    create user '新用户名'@'localhost' identified by '密码';
    //允许所有ip连接(用通配符%表示)
    create user '新用户名'@'%' identified by '密码';
    
    
  2. 为新用户授权

    //基本格式如下
    grant all privileges on 数据库名.表名 to '新用户名'@'指定ip' identified by '新用户密码' ;
    //示例
    //允许访问所有数据库下的所有表
    grant all privileges on *.* to '新用户名'@'指定ip' identified by '新用户密码' ;
    //指定数据库下的指定表
    grant all privileges on test.test to '新用户名'@'指定ip' identified by '新用户密码' ;
    
  3. 设置用户操作权限

    //设置用户拥有所有权限也就是管理员
    grant all privileges on *.* to '新用户名'@'指定ip' identified by '新用户密码' WITH GRANT OPTION;
    //拥有查询权限
    grant select on *.* to '新用户名'@'指定ip' identified by '新用户密码' WITH GRANT OPTION;
    //其它操作权限说明,select查询 insert插入 delete删除 update修改
    //设置用户拥有查询插入的权限
    grant select,insert on *.* to '新用户名'@'指定ip' identified by '新用户密码' WITH GRANT OPTION;
    //取消用户查询的查询权限
    REVOKE select ON what FROM '新用户名';
    
  4. 删除用户

    DROP USER username@localhost;
    
  5. 刷新权限

    FLUSH PRIVILEGES;
    
    

备注: information_schema 表的任意用户可见

mysql> show  grants for jkhl;
+------------------------------------------------------------+
| Grants for jkhl@%                                          |
+------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'jkhl'@'%'                           |
| GRANT SELECT ON `jkhldj`.* TO 'jkhl'@'%' WITH GRANT OPTION |
+------------------------------------------------------------+
2 rows in set (0.00 sec)