欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL创建普通用户并赋予权限的步骤教程

程序员文章站 2023-03-27 17:12:25
打开cmd,切换至 E:\xampp\mysql\bin,用 root 账户连接MySQL服务器: mysql -uroot -p -P3306 首先,创建新用户:...

打开cmd,切换至 E:\xampp\mysql\bin,用 root 账户连接MySQL服务器:

mysql -uroot -p -P3306

首先,创建新用户:

create user 'user01'@'127.0.0.1' identified by '666666';

create user 'user01'@'%' identified by '666666';

说明:@后面的ip地址为允许连接的客户端的ip地址,如果改为 '%',就表示客户端没有ip地址的限制。

然后,给新用户授权:

示例:

grant all privileges on *.* to 'user01'@'127.0.0.1' identified by '666666';
# 赋予新用户,从本地操作所有数据库.所有数据表的所有权限

grant all privileges on *.* to 'user01'@'%' identified by '666666';
# 赋予新用户,从外部操作所有数据库.所有数据表的所有权限(没有外部客户端的IP限制,但本地有限制)

最后,刷新权限,使权限立即生效:

FLUSH PRIVILEGES;
# 刷新权限(有时很必要)

注意事项:

创建用户时,如果后面是@'127.0.0.1',则只能从本地连接。

创建用户时,如果后面是@'%',就可以从外部(局域网或外网)连接;而且还可以从本地连接,且没有密码。

创建用户后,该用户就可以连接MySQL了,但默认什么权限都没有,想要操作数据库,就必须进行授权。

创建用户时,实际上是在mysql.user表中添加一条记录,Host(客户端地址)和User(用户名)共同确定记录的唯一性。

授权时,如果对应的记录(客户端地址和用户名)已经存在,就更新该记录;否则,会添加一条记录。

创建用户和授权,实际上都是操作mysql.user表。

综上所述,如果想给某个不存在的用户赋予数据库操作权限,只需一条授权命令即可。

grant all privileges on *.* to 'test'@'%' identified by '666666';
# 只执行这条授权命令,会在授权的同时,创建test用户。
# test用户,可以从外部连接MySQL(需要输入密码),具备所有权限。
# test用户,也可以从本地连接MySQL(不能输入密码),只能连接,不具备数据库操作权限。

# 如果想让test用户,在本地也具备所有权限,且用同样的密码,再授权一次即可。如下:
grant all privileges on *.* to 'test'@'127.0.0.1' identified by '666666';

也就是说,如果想给某个不存在的用户,授予所有数据库操作权限,且不论从本地还是外部连接,都具有同样的权限,且密码相同。只需执行下面两条授权命令:

grant all privileges on *.* to 'test'@'%' identified by '666666';

grant all privileges on *.* to 'test'@'127.0.0.1' identified by '666666';

删除用户:

DROP USER user01@%;
DROP USER user01@127.0.0.1;