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密码管理及授权的主要内容,如果未能解决你的问题,请参考以下文章