权限管理操作
一、权限简介
权限主要是为了用户能在一定范围内进行操作。
二、创建权限
grant all privileges on db_name.tb_name to user_name@'login_address' [identified by "密码"] [with grant option];
all: 该用户的权限,如我们只授予部分权限,直接替代all即可。
db_naem.tb_name: 数据库.数据表,如果我们不指定的话,我们可以直接使用*.*。
user_name: 要创建的用户名.当用户名存在的时候会给存在的用户重新授权,当用户不存在的时候会创建用户并给予相对应的权限。
login_address: 该用户连接的ip地址。如果是不设置直接使用%,有时候,我们使用的%表示链接地址,但是用户在本地是无法连接的,则在重新添加一个localhost的权限。
identified by "密码": 该用户的登陆密码。
with grant option: 将自己拥有的权限授权给别人。
三、基本操作
1.增加权限
grant ALTER,SELECT on *.* to qq@'localhost' identified by "123456" with grant option;
2.删除权限
revoke delete on *.* from 'qq'@'localhost';
drop user 'qq'@'localhost';
3.重置权限
// 修改用户名称
rename user 'qq'@'%' to 'jim'@'%';
// 修改用户密码
SET PASSWORD FOR 'qq'@'localhost' = PASSWORD('123456');
mysqladmin -uqq -p123456 password 1234abcd
update user set PASSWORD = PASSWORD('1234abcd') where user = 'qq';
4.查询权限
show grants for 'qq'@'%';
*有时我们对系统数据库进行了操作,但还是不能达到我们的效果,则可以使用强制刷新
flush privileges;
四、权限维护
权限控制主要是出于安全因素,因此需要遵循一下几个经验原则:
1、只授予能满足需要的最小权限,防止用户干坏事。比如用户只是需要查询,那就只给select权限就可以了,不要给用户赋予update、insert或者delete权限。
2、创建用户的时候限制用户的登录主机,一般是限制成指定IP或者内网IP段。
3、初始化数据库的时候删除没有密码的用户。安装完数据库的时候会自动创建一些用户,这些用户默认没有密码。
4、为每个用户设置满足密码复杂度的密码。
5、定期清理不需要的用户。回收权限或者删除用户。
更多建议: