mysql的用户和权限

上一篇刚刚配置好mysql 现在我们来玩一玩

linux下安装mysql 无坑版 贼简单

一、查看用户

查看用户并没有直接的SQL语句,而是进入 mysql 数据库的 user 表(这个mysql库和user表都是一开始就有的),直接用 select * from user;来查看有什么用户

登录数据库
mysql -uroot -p
password:你的密码
use mysql;
select * from user;

二、创建用户

create user 'user_name'@'localhost' identified by 'password';

user_name:要创建用户的名字。

host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填 ‘localhost’ ,如果允许从远程登陆,则填 ‘%’

password:新创建用户的登陆数据库密码,如果没密码可以不写。

创建不同限制的账户

-- 创建账户,"%"是无登录限制的,“666”是密码

create user 'xiaoyu'@'%' identified by '666';

-- "localhost"是限制为本地登录

create user 'xiaoyu'@'localhost' identified by '666';

-- 这个是限制 ip 为 10.11.20.30 的主机访问

create user 'xiaoyu'@'10.11.20.30' identified by '666';

三、分配权限

grant privileges on databasename.tablename to 'username'@'host';

privileges:表示要授予什么权力,例如可以有 select , insert ,delete,update等,如果要授予全部权力,则填 ALL

databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 " *.* "* 是一个通配符,表示全部。

’username‘@‘host’:表示授权给哪个用户,username 的引号可以不加哦,但 host 必须加。

为账户分配不同的权限------------------

-- xiaoyu库的student表的 只读权限 分配给 xiaoyu账户
grant select on xiaoyu.student to xiaoyu@'%';

-- xiaoyu库(所有表)的 多个权限 分配给 xiaoyu账户
grant select,insert,delete,update on xiaoyu.* to xiaoyu@'%';

-- xiaoyu库的 所有权限 分配给 xiaoyu账户
grant all on xiaoyu.* to xiaoyu@'%';

-- 所有库的 所有权限 分配给 xiaoyu账户
grant all on *.* to xiaoyu@'%';

-- 刷新权限
flush privileges;

四、权限列表:

ALTER: 修改表和索引。

CREATE: 创建数据库和表。

DELETE: 删除表中已有的记录。

DROP: 抛弃(删除)数据库和表。

INDEX: 创建或抛弃索引。

INSERT: 向表中插入新行。

REFERENCE: 未用。

SELECT: 检索表中的记录。

UPDATE: 修改现存表记录。

FILE: 读或写服务器上的文件。

PROCESS: 查看服务器中执行的线程信息或杀死线程。

RELOAD: 重载授权表或清空日志、主机缓存或表缓存。

SHUTDOWN: 关闭服务器。

ALL: 所有权限,ALL PRIVILEGES同义词。

USAGE: 特殊的 "无权限" 权限.

可根据上面的权限字段 为用户分配相应的权限

注意:-----------------

用以上命令授权的用户不能给其他用户授权,如果想这个用户能够给其他用户授权,就要在后面加上 WITH GRANT OPTION 如:
grant all on *.* to 'xiaoyu'@'%' with grant option;

补充 为用户创建数据库:
create database basename DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

五、删除用户

drop user 'username'@'host';

六、设置与更改用户密码

set password for 'username'@'host' = password('newpassword');

-- 如果是设置当前用户的密码

set password = password('newpassword');

七、撤销账户权限

-- 回收权限,格式和分配差不多,grant -> revoke , to -> from

revoke select on xiaoyu.student from xiaoyu@'%';

但注意:

若授予权利是这样写:grant select on *.* to xiaoyu@'%';

则用 revoke select on xiaoyu.student to xiaoyu@'%'; 是不能撤销用户 xiaoyu对 xiaoyu.student 中的 SELECT 权利的。

反过来 grant select on xiaoyu.student to xiaoyu@'%'; 授予权力

用 revoke select on *.* to xiaoyu@'%'; 也是不能用来撤销用户 xiaoyu对 xiaoyu库的 student 表的SELECT 权利的

八、测试

先创建一个新账户
在这里插入图片描述

再给他分配一些操作权限
在这里插入图片描述

接下来,就打开cmd用新账户测试一下
先登录这个账户
在这里插入图片描述

可以看到除了默认数据库,只能看到分配给的数据库和表
在这里插入图片描述

用分配给的不同SQL语句测试一下

在这里插入图片描述

再试一试没权限的

在这里插入图片描述

这时,我们可以在管理台给他新增这个权限
在这里插入图片描述

在测试台重新试一试刚刚的 delete

在这里插入图片描述

再试一试回收权限,管理台回收 delete 权限

在这里插入图片描述

测试台,这下就不行了

在这里插入图片描述

最后就试一试删除这个账户
在这里插入图片描述
在这里插入图片描述

成功。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值