• MySql用户以及权限的管理。


    1.创建用户

    CREATE USER “USERNAME“@“%” IDENTIFIED BY “PASSWORD”

       这样一个用户就新建完成了。

       CREATE USER ------创建用户后面跟上想要创建的用户名。

       @% ------%表示主机,如果是%表示任何主机都可,但是想限制IP那么就写IP。例如:我想让只想1.1.1.1这个能够访问数据库那么就这样

    CREATE USER “USERNAME“@“1.1.1.1” IDENTIFIED BY “PASSWORD”;

     但是有个问题本萌新想问一下:就算我写的是%号,但是我用本机当做服务器的话,我新建的普通用户,还是无法登陆,除非我在user表中INSERT一条localhost进去才行,不知道这个是为什么啊?

    2.给用户添加权限

      我们新建一个普通用户后,虽然有这个账户了,但是没有权限了访问不了数据库。所以我们需要给他分配权限。

    grant all privileges on *.* to 'USERNAME'@'%' identified by '账户的密码’

     all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
     on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
     to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:”yangxin”@”192.168.0.%”,表示yangxin这个用户只能在192.168.0IP段登录
     identified by:指定用户的登录密码

    对用户做了权限变更之后,一定记得重新加载一下权限,将权限信息从内存中写入数据库。

    mysql> flush privileges;

    3.查看用户权限

      查询某用户有哪些权限。注意后面的主机的名的不同,它所具备的权限也不是不同的。

    SHOW GRANTS FOR "USERNAME"@"%";

    4.回收/删除用户的某些权限

    revoke create on *.* from 'USERNAME@localhost';

     那么这条命令下去,该用户就不能创建任何数据库和表了。记得用第2项中的flush命令刷新一下权限。

    5.删除用户

    drop user 'USERNAME'@'%';           

    6.修改用户密码三种方法

    6.1.更新mysql.user表  
    # mysql5.7之前
         mysql> use mysql;
         mysql> update user set password=password('123456') where user='root';
     
     # mysql5.7之后
         mysql> use mysql;
         mysql> update user set authentication_string=password('123456') where user='root';
         mysql> flush privileges;

     6.2.set password for ‘用户名'@'登录地址'=password(‘密码')

    mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit'); 

    6.3.mysqladmin -u 用户名 -p旧的密码 password 新密码

    $ mysqladmin -u root -p123456 password 1234abcd

    注意我的提示符已经转变成shell了,注意-p后面是没有空格的。 

    7.如果忘记了root密码,如何修改root的密码呢?且看下面

    由于进行特殊模式进行登录,当前的一个shell会陷入黑洞中,所以建议多开一个ssh连接,用来做2、3步操作,
    1.在操作系统中停止mysql服务进程   RHEL7以下:service mysqld stop   RHEL
    7:systemctl stop mysql.service
    2.使用下面命令跳过权限验证,也就不需要密码了。
      mysqld_safe --skip-grant-tables
    3.修改root密码
      mysql> use mysql
      Database changed
      mysql> UPDATE user SET password=PASSWORD("Qwe123") WHERE user='root';
      Query OK, 4 rows affected (0.01 sec)
      Rows matched: 4 Changed: 4 Warnings: 0
      mysql> flush privileges;
      Query OK, 0 rows affected (0.00 sec)
      最后干掉当前特殊模式下的mysql进程 重启一下服务,那么grant验证就又回来了。

    如果错误恳请各位指出,谢谢!

    相关链接: http://www.jb51.net/article/69761.htm   http://www.jb51.net/article/87979.htm

        

  • 相关阅读:
    随笔12 java反射机制
    随笔11 J2EE中常用的名词解释
    随笔⑩ java中的基本数据类型的基础知识
    随笔⑨ java中的变量 --- 类变量(静态变量),final变量,成员变量,局部变量 java中的方法 --- 类方法(静态方法),final方法,成员方法(实例方法),构造方法
    随笔⑧ java中的存根类 --- Stub
    随笔⑦ Java中的比较 ==,equals以及精度对比较的影响
    随笔⑥ 关于线程 --- 线程操作的主要方法
    Jupyter notebook and Octave kernel installation
    [C7] Andrew Ng
    [C6] Andrew Ng
  • 原文地址:https://www.cnblogs.com/zzh10086130/p/6420906.html
Copyright © 2020-2023  润新知