mysql 建用户 给权限_MySQL创建用户和分配权限

回顾今天的数据库实验⊂(ο・㉨・ο)⊃

先新建一个测试数据库

afedc52c3ee78c8a8d404000645de673.png

再创建个表填些数据

e254aae2aec356fbff1e83f0c9dec550.png

一、查看用户

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

use mysql;

select * from user;

二、创建用户

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

user_name:要创建用户的名字。

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

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

创建不同限制的账户

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

create user 'liwker'@'%' identified by '123';

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

create user 'liwker'@'localhost' identified by '123';

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

create user 'liwker'@'10.11.20.30' identified by '123';

二、分配权限

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

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

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

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

为账户分配不同的权限

-- Liwker库的student表的 只读权限 分配给 liwker 账户

grant select on Liwker.student to liwker@'%';

-- Liwker库(所有表)的 多个权限 分配给 liwker 账户

grant select,insert,delete,update on Liwker.* to liwker@'%';

-- Liwker库的 所有权限 分配给 liwker 账户

grant all on Liwker.* to liwker@'%';

-- 所有库的 所有权限 分配给 liwker 账户

grant all on *.* to liwker@'%';

-- 刷新权限

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 'liwker'@'%' 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 Liwker.student from liwker@'%';

但注意:

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

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

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

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

六、测试

先创建一个新账户

eb5bb45daa2e4c19b564e6ffdb1216bd.png

再给他分配一些操作权限

7d6832f1eb851426da6865f853a3a09d.png

接下来,就打开cmd用新账户测试一下

先登录这个账户

be36ae29f86d681a7a2670b0e8bf2c2b.png

可以看到除了默认数据库,只能看到分配给的数据库和表

f5a1a90e9e2d625f61229339a20b8af6.png

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

868445d6647e5d7100e5ba509e42b055.png

再试一试没权限的

5d7322ef96e8c7dff649a3a03350058d.png

这时,我们可以在管理台给他新增这个权限

8dd0b4c35250701b28e8503d23ebf85f.png

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

bca566abc59f13251af7410a1573b72c.png

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

4cb69228744e56f70eaa35171d954d0b.png

测试台,这下就不行了

2d2b5c951db60f4a3f037d20e732df7c.png

最后就试一试删除这个账户

33c45e4db90afb77739aa96610ba1439.png

8d96f9a7b09b41c696c5ab7dc3e4e472.png

成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值