1、新建用户修改用户密码
我的安装配置好mysql后目前只有一个用户就是root,并且此root用户拥有最高权限,因此当我们需要别人也操作数据库时,是不建议直接使用这个root用户的。(mysql语句不区分大小写,本人始终习惯小写,故后续教程中语句都是小写,当然建议是使用大写的)
-
新建用户的语句格式:
create user 'username'@'host' identified by 'psaaword'
-
创建用户语句格式解析:
create user 'username'@'host' identified by 'psaaword' username:你创建用户的用户名; host:用户登录地址,指明该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%,如果是特定的主机用户可以配置ip地址; password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器;
-
创建用户语句实例:
/*此处以创建用户,用户名:goodman,密码:123456,为例*/ 创建本地登录用户goodman,密码123456; create user 'goodman'@'localhost' identified by '123456'; 创建特定主机的登录用户goodman,密码123456,主机ip为:192.168.17.98; create user 'goodman'@'192.168.17.98' identified by '123456'; 创建可以从任意主机登录改数据库的登录用户goodman,密码123456; create user 'goodman'@'%' identified by '123456'; 创建无登录密码的用户:goodman;(两种语句均可创建成功) create user 'goodman'@'192.168.17.98' identified by ''; create user 'goodman'@'192.168.17.98';
-
修改用户密码:
root用户登录修改别的用户密码语句格式: revoke psaaword for ‘username’@'host' = password('newpassword'); 将本地用户goodman登录密码改为111111 revoke psaaword for ‘goodman’@'localhost' = password('111111');
用户登录修改自己的登录密码语句格式: set psssword = password('newpassword'); 本地用户goodman修改自己的登录密码改为111111 set psssword = password('111111');
2、给用户授权+撤销授权
-
给用户授权语句格式:
grant privileges on database.tablename to 'username'@'host'
以上语句给用户授权后,这个用户不能再给别的用户授权,可以使用这个命令,这样被授权的用户也可以可别的用户授权:
grant privileges on database.tablename to 'username'@'host' with grant option
-
给用户授权语句格式说明:
grant privileges on database.tablename to 'username'@'host'
privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
databasename:数据库名
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*****表示,如*.*
(是星号加点再加一个星号,第一个星号表示所有数据库,点表示数据库连接表,最后一个星号表示所有表。所有*.*
表示这个用户可以操作所有数据库中的所有表)
’username’@‘host’:授权给哪个用户 -
给用户授权实例(假设数据库名是student,表名是name):
给本地用户goodman授权select与insert操作权限,操作的数据库是student中的name表 grant select,insert on sutdent.name to 'goodman'@'localhost'; 给本地用户goodman授权所有可操作性权限,并且可以操作任意数据库对应下的任意表 grant ALLt on *.* to 'goodman'@'localhost'; 给本地用户goodman授权所有可操作性权限,并且可以操作student数据库下的任意表 grant ALLt on student.* to 'goodman'@'localhost';
假如你在给用户’goodman’@'localhost’授权的时候是这样的(或类似的):GRANT SELECT ON sutdent.name TO ‘goodman’@'localhost,则在使用REVOKE SELECT ON . FROM ‘goodman’@'localhost;命令并不能撤销该用户对sutdent数据库中name表的SELECT 操作。
相反,如果授权使用的是GRANT SELECT ON . TO ‘goodman’@‘localhost’;则REVOKE SELECT ON sutdent.name FROM ‘goodman’@‘localhost’;命令也不能撤销该用户对sutdent数据库中name表的Select权限。
-
查看用户所授权限
show grants;查看当前登录用户自己当前权限 show grants for 'username'@'host'; 查看特定用户的权限 查看本地用户goodman的权限 show grants for 'goodman'@'localhost';
-
取消用户授权:
revoke privilege on databasename.tablename from 'username'@'host'; 取消本地用户goodman的insert权限: revoke insert on databasename.tablename from 'goodman'@'localhost'; 取消本地用户goodman的所以可操作权限: revoke all on databasename.tablename from 'goodman'@'localhost';
3、查看+删除用户
-
查看都有哪些用户:
查看数据库所有用户 select user,host from mysql.user 也可使用如下语句,显示更加详细: select distinct concat('User: ''',user,'''@''',host,''';') as query from mysql.user;
-
删除用户:
drop user 'username'@'host';
4、退出断开连接
- 退出/断开连接:
exit;或quit;或 \q;或ctrl+c;