创新路
我们一直在努力

Mysql之密码和用户授权

一、管理员密码管理(系统root用户)

    1.修改数据库管理源本机登录的密码(需要知道当前登录的密码)

        mysqladmin   -hlocalhost  -uroot   -p   password  "新密码"

        会提示输入当前密码,输入后即可完成修改

 

    2.恢复数据库管理员本机登录密码(忘记密码)

        systemctl stop mysqld.service      //停止 MySQL 服务程序

        vim /etc/my.cnf

            skip-grant-tables                    //跳过授权表启动 MySQL 服务程序

            注释掉密码长度和复杂性要求的参数 

        systemctl start mysqld.service

        mysql

        desc  mysql.user;

        select host,user,authentication_string   from  mysql.user;

        update mysql.user set authentication_string=password("123456") where user="root" and host="localhost";  //重设 root密码

        flush privileges;                 //刷新权限

        quit

        vim /etc/my.cnf            //恢复配置文件

           #skip-grant-tables       

           取消注释的长度及复杂性要求的参数

        systemctl restart mysqld    //重启服务

 

二、用户授权

    1.用户授权: 在数据库服务器上添加连接用户,添加时可以设置用户的访问权限和连接的密码。默认只允许数据库管理员root用户在本机登录。默认只有数据库管理员root用户在本机登录才有授权权限。

    2.授权库 mysql ,主要的几个表(直接修改表更改权限后,需要flush privileges刷新权限)

        user 表,存储授权用户的访问权限(所有权限)                     db 表,存储授权用户对数据库的访问权限(库权限)

        tables_priv 表,存储授权用户对表的访问权限(表权限)     columns_priv 表,存储授权用户对字段的访问权限(字段权限)

     3.用户授权命令的语法格式

        grant 权限列表 on 数库名 to 用户名@"客户端地址"  identified by "密码" [with  grant  option];  

        with  grant  option  //新增用户授权权限,要具备授权权限必须有对mysql库授权表有写入权限

    4.权限列表的表示方式

        可以参考之前发表的文章        

http://blog.tfidc.net/html/8266/mysql%e4%b8%ad%e7%9a%84grant%e6%9d%83%e9%99%90.html

    5.客户端地址的表示方式:

        %                        所有地址

        192.168.1.2           指定ip地址

        192.168.1.%          网段

        www.lxy.cn          主机名(要求数据库服务器可以解析主机名)

        %.lxy.cn              域名(要求数据库服务器可以解析域名内的主机名)

    6.相关命令

        select   user(); 显示连接用户名和客户端地址

        select  @@hostname  ;   查看当前系统登录的主机名

        show   grants  ;   登录用户查看自己的访问权限

        select user,host from mysql.user; 查看当前数据库已有的授权用户

        show grants  for  用户名 @“客户端地址”;查看已有授权用户的访问权限

        drop  user   用户名 @“客户端地址";  删除授权用户

    7.重设用户密码

        授权用户修改自己的密码

        SET PASSWORD=PASSWORD(' 新密码 ');

        管理员可重设其他用户的密码

        SET  PASSWORD  FOR 用户名 @' 客户端地址 '=PASSWORD(' 新密码 ');

    8.撤销用户权限

        (1)撤销的是用户的访问权限(用户还在),用户对数据库有过授权才可以撤销(对于 库.表,授权时写的啥,撤销时也只能写啥)

        (2)语法格式:revoke  权限列表  on  数据库名  from 用户名@"客户端地址" ;

            例: 撤销1.2主机 使用root用户连接时,授权权限。

                mysql> revoke grant option on *.* from 'root'@'192.168.1.2';

            例: 通过修改表记录的方式撤销用户的访问权限

                mysql> update  mysql.user  set   Select_priv="N"  where  user= 'root'  and host='192.168.4.254';

                mysql> flush  privileges;

            例:  撤销1.2主机 使用root用户连接时 所有权限

                mysql> revoke  all  on *.*   from   'root'@'192.168.1.2'; 

            例: 删除授权用户 'root'@'192.168.1.2';

                drop  user   'root'@'192.168.1.2';

未经允许不得转载:天府数据港官方信息博客 » Mysql之密码和用户授权

客官点个赞呗! (0)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机