1. 创建用户
先来查看一下用户信息:
创建用户----create user "xixi"@"127.0.0.1" identified by "123" 创建一个用户名为"xixi" 密码为123的用户,后面的IP地址是只有在这个IP地址 上输入刚才创建的用户名和密码才可以访问数据库;
create user "xixi"@"127.0.0.1" identified by "123" # 创建一个名为xixi 密码123的用户(IP是127.0.0.才可以访问数据库)
然后进入连接后,显示了what 就是刚创建的用户再使用用户名xixi 密码123尝试登陆时写的连接名:
会发现登陆之后,什么都没有(只有两个数据库information_schema test )是因为还没有对刚创建的用户赋予权限:
2.查看新创建的用户的权限:--show grants for “xixi”@"127.0.0.1"
show grants for "xixi"@"127.0.0.1"; # 查看新创建的用户的权限
运行结果:
3. 给用户赋予权限
3.1 grant select,update on db1.info to "xixi"@"127.0.0.1" # 给用户赋予查看,修改数据库db1的info表的权限
grant select,update on db1.info to "xixi"@"127.0.0.1" # 给用户赋予查看修改数据库db1的info表的权限
运行结果(先关闭一下what连接,再开启,刚才赋予的权限才会生效):
3.2 grant all privileges on *.* to "xixi"@"127.0.0.1" # 给用户赋予除了grant外的所有权限(就是root用户之下 万人之上的地位,除了不能给其他用户赋予权限,其他操作都可以)
grant all privileges on *.* to "xixi"@"127.0.0.1" # 给用户赋予对root用户下所有数据库的所有表除了grant外的所有权限
运行结果:
4. 移除用户权限---revoke all privileges on *.* from "xixi"@"127.0.0.1" # 移除xixi用户在root用户下的数据库的所有数据表的所有权限
revoke all privileges on *.* from "xixi"@"127.0.0.1" # 移除用户权限*.* 是所有数据库的所有表(但是db1这个库的info表还在,,,不知道为啥)
revoke select,update on db1.info from "xixi"@"127.0.0.1" # 移除赋予用户的db1.info表的权限
运行结果(先关闭连接,再重开连接):
5. 修改用户名: rename user "xixi"@"127.0.0.1" to "xixixi"@"127.0.0.1"
先来看一下修改之前的用户:
rename user "xixi"@"127.0.0.1" to "xixixi"@"127.0.0.1"
运行结果:
6. 删除用户:drop user "xixixi"@"127.0.0.1"
drop user "xixixi"@"127.0.0.1" # 删除用户
运行结果:
7. 开放外部访问权限(就是创建用户,外部可以在他们的IP地址上使用我这台电脑上创建的用户名和密码登录):
create user "test"@"%" identified by "123"; # 创建用户名test 密码123 IP地址% 表明外部任意一台IP地址都可以使用test用户名 123 登录连接我这台服务器
grant all PRIVILEGES on db1.info to "test"@"%" ; # 给外部访问(只可以访问db1数据库的info表)的用户赋予权限(除了grant外的所有权限)
flush PRIVILEGES; # 刷新权限(我这边为外部用户设置权限后,他们不能立即生效,需要刷新一下)
运行结果(这里没使用别的电脑(IP不一样)尝试用test 123登录连接,只简单的使用test 123 在本机 (IP 127.0.0.1)访问)