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
也可以用localhost
,127.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 协议》,转载必须注明作者和本文链接
推荐文章: