1.  创建用户

先来查看一下用户信息:

python加权限 python用户权限管理_python

 创建用户----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.才可以访问数据库)

python加权限 python用户权限管理_IP_02

python加权限 python用户权限管理_python加权限_03

然后进入连接后,显示了what 就是刚创建的用户再使用用户名xixi 密码123尝试登陆时写的连接名:

python加权限 python用户权限管理_python加权限_04

会发现登陆之后,什么都没有(只有两个数据库information_schema  test )是因为还没有对刚创建的用户赋予权限: 

2.查看新创建的用户的权限:--show grants for “xixi”@"127.0.0.1" 

show grants for "xixi"@"127.0.0.1";  # 查看新创建的用户的权限

运行结果:

python加权限 python用户权限管理_数据库_05

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连接,再开启,刚才赋予的权限才会生效):

python加权限 python用户权限管理_python_06

 

 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外的所有权限

运行结果:

python加权限 python用户权限管理_用户名_07

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表的权限

运行结果(先关闭连接,再重开连接):

python加权限 python用户权限管理_用户名_08

 

 5. 修改用户名: rename user "xixi"@"127.0.0.1" to "xixixi"@"127.0.0.1" 

先来看一下修改之前的用户:

python加权限 python用户权限管理_数据库_09

rename user "xixi"@"127.0.0.1" to "xixixi"@"127.0.0.1"

运行结果:

python加权限 python用户权限管理_用户名_10

 

 6. 删除用户:drop user "xixixi"@"127.0.0.1"

drop user "xixixi"@"127.0.0.1"   # 删除用户

 运行结果:

python加权限 python用户权限管理_python_11

 

 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)访问)

python加权限 python用户权限管理_python_12

 

 

python加权限 python用户权限管理_数据库_13

  

python加权限 python用户权限管理_python_14