数据库用户管理

122 阅读3分钟

一、新建用户

1.1明文加密创建用户

create user '用户名'@'来源地址' identified by '密码';

image.png image.png

1.2 密文加密

create user '用户名'@'来源地址' identified by password '密码';

image.png image.png

image.png 注意

'用户名':指定将创建的用户名;
'来源地址':指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本机用户可用localhost,允许任意主机登录可用通配符;
'密码':若使用明文密码,直接输入'密码',插入数据库时由MYSQL自动加密
       若使用加密密码,需要先使用select passwd('密码');获取密文,再在语句中添加 PASSWD '密文';
       若省略"identified by"部分,则用户的密码将为空(不建议使用)

如何查看已经登录用户

select user();

image.png

1.3更改用户名和登录地址

rename user '原用户名'@'原登录地址' to '新用户吗'@'新登录地址';

image.png image.png

1.4查看用户登录表

use mysql;
select user,host,authentication_string from user;  #查看user表中的用户数据

image.png

1.5删除用户名和用户地址

删除用户名和登录地址
drop user '用户名'@'登陆地址'

image.png

1.6更改用户密码

#更改当前登录的用户
set password = password('新密码');
#更改指定的用户
set password for '用户名'@'登录地址' = password('新密码')

ps: set password 只能管理员用户使用,其他用户无法使用

image.png

image.png

1.7如果忘记mysql的root密码该怎么办

1.进入 /etc/my.cnf修改配置文件,加入skip-grant-tables 无密码登录
#重启MySQL
2.service mysqld restart
3.登录mysql,修改密码
supdate mysql.user set authentication_string = password('abc123') where user='root';
4.刷新授权,重新登陆mysql
flush privileges; #刷新授权
5.删无密码登录的配置,重新启动mysql,登录mysql时候就可以用新密码登录

image.png image.png image.png

image.png image.png

image.png

image.png

image.png

二、授予权限

create user 只有登录的权限,没有操作的权限
grant 语句,专门用来设置数据库用户的访问权限,当指定的用户名不存在时,grant语句将会创建新的用户,当指定的用户名存在时,grant 语句用于修改用户信息

当指定的用户名不存在的时候,grant语句会创建新的用户
当指定的用户名存在的时候,grant语句用于修改用户信息

#权限列表;用于列出授权使用的各种数据库操作,以逗号进行分割,如"select,insert,update".使用“all”表示所有权限,可授权执行任何操作
#数据库名,表名:用于指定授权操作的数据库和表的名称,其中可使用通配符"*".例如,使用“hhh.”表示授权操作的对象为 hhh数据库中的所有表
#'用户名'@'来源地址':用于指定用户名称和允许访问的客户机地址,即谁能连接,能从哪里连接,来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内所有地址,如“%.hhh.com”、“192.168.100.%”等
#identified by:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“identified by”部分,则用户的密码将为空。

ps:grant语句用不了空密码

2.1关于授权小实验

实验一

允许lihua只查询study库中所有表的数据登录,不允许查询其他数据库表的信息,且用abc123密码登录

grant select on study.* to 'lihua'@'localhost' identified by 'abc123';

image.png

image.png

image.png

image.png

实验二

允许用户zhangsan在所有终端远程连接mysql,拥有所有权限,使用密码abc123登录

image.png image.png

image.png

image.png

2.2查看用户的权限

show grants; #查看当前用户的权限

image.png

show grants for '用户名'@'来源地址' 
#查看其他用户的权限

image.png

2.3撤销权限

格式:revoke 权限列表 on *.* from '用户名'@'来源地址';   #不会撤销登录权限
                    数据库名.表

image.png image.png