快捷搜索: 王者荣耀 脱发

头歌-MySQL实践(授权与撤销授权)

用户管理

创建用户

create user 用户名@允许登陆的主机地址 identified by 密码;
#创建指定ip为192.168.1.1的lyn用户登录
create user lyn@192.168.1.1identified by 123;
#创建指定ip为192.168.1开头的lyn用户登录
create user lyn@192.169.1.% identified by 123;
#创建指定任何ip的lyn用户登录
create user lyn@% identified by 123;

删除用户

drop user 用户名@允许登陆的主机地址;

修改用户名

rename user 用户名@IP地址 to 新用户名@IP地址;

修改密码

set password for 用户名@IP地址 = Password(新密码);

授权方式

新创建的用户默认情况下是什么权限都没有的。想要操作数据库,就必须进行授权。

查看权限

show grants for 用户@IP地址

权限类别

    ALL 允许做任何事; USAGE 只允许登录。 上图中ALL表示允许做任何事,而USAGE则表示只允许登录,其他什么也做不了。

授予权限

grant 权限列表 ON 库.表 to 用户名@ip identified by 密码;

例子

#将所有数据库的所有权限授予给lyn这个用户,允许lyn用户在123.123.123.123这个IP进行远程登陆,并设置lyn用户的登录密码为123456。
grant all on *.* to lyn@123.123.123.123 identified by 123456;
#将mysql_db数据库中的sys_user表的查询权限给qjh用户。
grant select on mysql_db.sys_user to qjh@localhost identified by password123123;

#查看该用户的权限
show grants for qjh@localhost;

注意:授权操作只能是root用户来操作;grant给用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效;授权后一定要刷新权限,使权限立即生效:FLUSH PRIVILEGES;

另外在使用grant给用户添加权限时,权限会自动叠加,不会覆盖之前授予的权限,比如你先给用户添加一个select权限,后来又给用户添加了一个insert权限,那么该用户就同时拥有了select和insert权限。

撤销权限

MySQL 同样也提供了撤销权限的方法 ——revoke,revoke跟grant语法差不多,只需要把关键字to换成from即可,并且revoke语句中不需要跟密码设置,具体如下:

revoke 权限列表 on 库.表 from 用户名@ip;

注意:

    和grant一样,revoke用户权限后,该用户只有重新连接 MySQL数据库,权限才能生效。 revoke可以回收所有权限,也可以回收部分权限,且授权只是收回权限,用户仍可以登录。
#将用户qjh@localhost在mysql_db数据库中对sys_user表的删除delete权限撤销。
revoke DELETE on mysql_db.sys_user from qjh@localhost;
    多条revoke收回权限和grant一样,也是会自动叠加,不会覆盖之前撤销权限操作。
经验分享 程序员 微信小程序 职场和发展