• MySQL常用权限操作


    MySQL常用权限操作

    5.7版本操作

    添加用户:

    // 允许指定ip连接
    CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    create user '新用户名'@'localhost' identified by '密码';
    // 不限制 IP(用通配符%表示)
    create user '新用户名'@'%' identified by '密码';
    CREATE USER 'javacui'@'localhost' IDENTIFIED BY '123456'; 
    CREATE USER 'javacui'@'172.20.0.0/255.255.0.0' IDENDIFIED BY '123456'; 
    CREATE USER 'javacui'@'%' IDENTIFIED BY '123456'; 
    CREATE USER 'javacui'@'%' IDENTIFIED BY '';
    CREATE USER 'javacui'@'%';

    授权

    // 基本格式如下
    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 '新用户密码' ;

    注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令

    GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

     设置用户操作权限 

    // 设置用户拥有所有权限也就是管理员
    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 '新用户名';

    之前版本:

    注:除了新建用户INSERT 和更新密码其他命令可以用(因为 user 表的 password 字段变成 authentication_string

    常用:更新密码

    (SQL命令控制台执行)

    UPDATE user SET PASSWORD=PASSWORD('123456') WHERE USER='ROOT' AND HOST='%';

    或者(SQL命令控制台执行)

    SET PASSWORD FOR root@localhost= PASSWORD('123456');

    当前用户简单

    SET PASSWORD = PASSWORD("newpassword");

    或者(下面这个shell中执行,输入原密码和新密码)

    mysqladmin -u root -p old_password password new_password

    常用:赋予权限

    GRANT ALL PRIVILEGES ON *.* TO 'root' @'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

    注:'root' @'%',root为你要修改的SQL用户名,%为ip,%表示权限开发所有IP都可访问,如果有具体的IP,改成IP地址即可。

     ** 修改完密码后记得刷新权限 **

    FLUSH PRIVILEGES;

     

    1.新建用户

    mysql -u root -p
    Enter password:

    输入密码登录。

    创建用户:

    mysql> INSERT INTO mysql.user(Host, User, Password) VALUES ("localhost", "test", PASSWORD("123456"))

     这样就创建了一个名为:test 密码为:123456的用户。

    注意:此 localhost 指该用户只能在本地登录,不能远程登录。如果想远程登录的话,将 localhost 改为 %,表示不限制 ip。也可指定 某机器 / ip 可以远程登录。

    然后登录试试:

     mysql> exit;
     $ mysql -u test -p
     Enter password:

    2. 为用户授权

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

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

    mysql -u root -p

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

    mysql>CREATE DATABASE test_db;

    (3) 授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限):

    mysql> GRANT ALL PRIVILEGES ON test_db.* TO test@localhost IDENTIFIED BY '123456';
    mysql> FLUSH PRIVILEGES;   //刷新权限

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

    mysql> GRANT SELECT,UPDATE ON test_db.* to test@localhost IDENTIFIED BY '123456';
    mysql> FLUSH PRIVILEGES; //刷新权限

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

    mysql> GRANT SELECT,DELETE,UPDATE,CREATE,DROP ON *.* to test@"%" identified by "123456";

    3. 删除用户

    mysql> DELETE FROM user WHERE User = 'test' AND Host = 'localhost';
    mysql> FLUSH PRIVILEGES;
    mysql> DROP DATABASE test_db; //删除用户的数据库

    最后删除账户及权限:

    mysql> DROP USER 用户名@'%';
    mysql> DROP USER 用户名@localhost; 
  • 相关阅读:
    JDBC(三)、基础代码及优化
    JDBC(二)、注册驱动三种实现原理
    JDBC(一)、数据库存取的三种
    Java学习笔记(四) 运算符
    Java学习笔记(三) 基础语法
    Java学习笔记(二) 第一个程序
    Java学习笔记(一) Java 概述
    JqGrid自定义获取编辑中单元格的值
    移动前端开发之viewport的深入理解
    CSS学习笔记--提示工具(Tooltip)
  • 原文地址:https://www.cnblogs.com/fieldtianye/p/12424976.html
Copyright © 2020-2023  润新知