mysql的用户都保存在mysql这个库的user表里面。

创建用户Tom

CREATE USER user_specification [,user_specification] ... user_specification: user@host [ IDENTIFIED BY [PASSWORD] ‘password’ | IDENTIFIED WITH auth_plugin [AS ‘auth_string’]] User:表示创建的用户的名称 ; host:表示允许登陆的用户主机名称; IDENTIFIED BY:表示用来设置用户的密码; [PASSWORD] : 表示使用哈希值设置密码; ‘password’:表示用户登陆时使用的普通明文密码; IDENTIFIED WITH:表示用 户指定一个身份验证插件; auth_plugin:是插件的名称; ‘auth_string’是可选的字符串,解释插件的意 义

 查看指定用户

select *from mysql.user where user='用户'\G

查看全部用户 select *from mysql.user \G

 哈希加密

 使用Grant语句创建新用户

GRANT privileges ON db.table To user@host [identified by ‘password’] [,user[identified by ‘password’]]

[with grant option]; Privileges:表示赋予用户的权限类型; db.table:表示用户的权限所作用的数据库中 的表; identified by关键字用来设置密码; ‘password’用户的密码; [with grant option]可选项,表示对 新建立的用户赋予GRANT权限。

使用SET语句修改root用户的密码 

先看一下用户详细权限

 我的这里显示的是password我们直接用password改root密码

set改普通用户

 update改普通用户

 使用GRANT语句修改普通用户密码

 Root用户密码丢失的解决办法 1、使用--skip-grant-tables选项启动mysql服务

 

先把数据库停了

mysqld_safe --skip-grant-tables 

用这个启动数据库然后我们开另一个终端

 先查一下启动了没

 启动后直接无密码登录

我这里用的update改的root密码

 改完我们用kill -9杀掉数据库pid

 这样就改成了,我们直接启动服务登录;

 收回权限 收回权限就是取消已经赋予用户的某些权限。收回用户不必要的权限可以在一定程度上保证系统的安 全性。MySQL中使用REVOKE语句取消用户的某些权限,使用REVOKE收回权限之后,用户账号的记录将从 db,host,user,tables_priv和columns_priv表中删除,但是用户账号记录仍然在user表中保存(删除user表中的账 户记录,用DROP USER语句) REVOKE语句有两种用法,第一种语法是收回所有用户的所有权限,此语法用于 取消对已命名的用户的所有全局层级,数据库层级,表层级和列层级的权限。

查看用户创建的时候都有什么权限

show grants for 用户@localhost\G

 我们给它去掉insert权限 

revoke insert on *.* from tom@localhost;

使用delete语句删除用户

delete from mysql.user where user='用户' and host='localhost';

 drop删除用户

drop user  用户@localhost;

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐