Mysql密码管理及授权

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql密码管理及授权相关的知识,希望对你有一定的参考价值。

目录

1 管理root用户密码

2 用户授权与权限撤销

3 安装图形管理工具



1 管理root用户密码

1.1 修改密码

方法1:用mysqladmin

该方式需要知道mysql的原密码

命令格式:

mysqladmin  -hlocalhost  -uroot -p password “新密码”

方法2:需要登录到mysql

授权用户修改自己的密码:

mysql> set password=password(“新密码”);

数据库管理员重设其它用户的密码:

mysql> set password for 用户名@’客户端地址’=password(“新密码”);

方法3: 用sql命令update直接编辑user表

mysql> use mysql; #系统自带的数据库

mysql> update user set authentication_string= password('新密码') where user = 'root';

mysql> flush privileges;


1.2 密码恢复及设置

修改配置文件/etc/my.cnf

[mysqld]

skip_grant_tables  #跳过授权表

#validate_password_policy=0  #刚进入mysql设置的,删除或者注释

#validate_password_length=6  #删除或者注释

[[email protected] ~]# systemctl restart mysqld

[[email protected] ~]# mysql  #不用密码可以进入数据库

mysql> select * from mysql.user\G; #密码存放的表

mysql> update mysql.user

set authentication_string=password('234567')

    -> where user="root" and host="localhost";

更新成功之后,重回配置文件,修改过来,注释掉跳过授权表,重启服务。


2 用户授权与权限撤销

2.1授权

格式:

mysql> grant 权限列表 on 库名 to 用户名@”客户端地址” identified by “密码” with grant option;

权限列表:all ; select, insert, update ; usage

usage:该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收,使用REVOKE并不能删除用户。

库名:*.* 代表所有;库名.表名

客户端地址:% 代表所有可以ping通服务器的主机

with grant option 该选项可不写,给授权的客户机也可以进行对数据库授权

mysql> select @@hostname; #查看数据库服务器

mysql> select user();   #查看当前登录的用户名

mysql> show grants;     #查看权限

mysql> show processlist; #显示当前运行的程序访问用户的信息

 

2.2 撤销授权

(1)查看已有的授权用户:select user,host from mysql.user;

(2)查看已有的授权用户访问权:show grants for 用户名@”%”;

(3)撤销用户访问权限:

格式:

revoke 权限列表 on 库名.表名 from 用户名@客户端地址;

mysql> revoke grant option on *.* from [email protected]'%';

mysql> revoke all on *.* from [email protected]客户端地址

当对一个用户授权一个不存在的库时,该用户登录后只能对授权的库进行操作(如建只能授权的库)。

(4)或者对表的用户权限进行更改:

mysql> select *from  mysql.user\G;

mysql> update mysql.db set Delete_priv=”Y” where user=”用户名” and host=”客户端地址”;

flush privileges; #更新数据库

撤销的只是用户的权限并不是把用户删除.

撤销权限后会权限会变为usage,用户仍能登录。

(5)此时可以删除用户:

两种方法

第一种:delete from mysql.user where user=”” and host=””;

第二种:drop user 用户名@“客户端地址”;

flush privileges;

(6)数据库自带mysql库中表的含义:

mysql授权库  存储的是授权信息,使用不同的表存储不同的授权权限。

user      存储授权用户已有的授权用户

db        存储授权用户对库的访问权限

tables_priv  存储授权用户对表的访问权限

column_priv  存储授权用户对字段的访问权限

 

3 安装图形管理工具

3.1 phpMyAdmin

[[email protected] ~]# yum -y install httpd php php-mysql

[[email protected] ~]# mv phpMyAdmin-4.1.2-all-languages

/var/www/html/pma

[[email protected] ~]# cd /var/www/html/pma

[[email protected] ~]# cp config.sample.inc.php  config.inc.php

[[email protected] ~]# vim config.inc.php

17行:$cfg[‘blowfish_secret’]=’test’; #在单引号里随意添加字符,如果不修改这项,会报错

31行:$cfg['Servers'][$i]['host'] = '数据库IP';

测试:从浏览器访问

firefox http://192.168.0.4/pma


以上是关于Mysql密码管理及授权的主要内容,如果未能解决你的问题,请参考以下文章

MySQL授权用户及密码恢复设置

数据库用户管理及授权

数据库用户管理及授权

数据库的显示创建使用 用户授权管理及忘记root用户后重置密码

mysql系列之4----密码管理授权图形化管理

mysql-管理命令创建用户授权修改密码删除用户和授权忘记root密码