mysql的权限管理

mysql的权限管理(grant的使用)

话不多说上代码

grant all privileges on *.* to 'test'@'192.168.150.150' identified by 'password' with grant option;

SQL描述

这里来解释一下这个语句到底是什么意思
test用户赋予所有权限 可以操作所有库和表 用户名是test可以链接的主机IP是192.168.150.150密码是password权限也可以赋予给其他用户

分解解释
以上sql代表:grant 权限 on 库名.表名 to 用户名@主机名identified by 密码 with grant option;

权限

权限表示的是你要给当前用户赋予什么权限 如 select,insert,all privileges
权限可以赋一个也可以赋多个 可以通过,分割来赋予多个权限,也可用通过all privileges来表示赋予所有权限,可以通过权限列表来查看可以赋予那些权限

库名

表示当前用户可以操作的数据库名称,也可以通过*表示所有数据库

表名

表示当前用户可以操作的表的名称,也可以通过*表示所有表

用户名

被赋予权限的用户名

主机名

表示可以链接数据库的IP地址如 192.168.150.150也可以用localhost127.0.0.1,这两个来表示本机,还可以用%表示所有IP都可以访问(正式环境不推荐使用%)

密码

如标题所示就是生成用来登录数据库的密码 前面的 identified by和密码是一起的

with grant option

这个语句表示当前用户可以将自身拥有的权限赋予其他用户

链接符

on是用来链接 授权和授权的数据库表的,如:(all privileges on database.table)
.是用来链接库和表的,如(database.table)
to是用来链接库.表和用户@主机的,如(database.table to user@host)
@是用来链接用户名和主机的,如(user@host)

去除权限

REVOKE INSERT ON *.* FROM 'test'@'192.168.150.150';

这个去除权限语句表示的意识是【去除 所有库.所有表*.*的插入数据权限INSERT在test用户@192.168.150.150的主机中'test'@'192.168.150.150'

刷新权限

添加完权限后通过执行一下SQL来刷新权限!

FLUSH PRIVILEGES;

其他

本文章参考地址如下
dev.mysql.com/doc/refman/5.7/en/gr...
dev.mysql.com/doc/refman/5.7/en/pr...
dev.mysql.com/doc/refman/5.7/en/fl...

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!