一:用户管理
1、登录Mysql服务器
mysql –h hostname|hostIP –P port –u username –p DatabaseName –e
"SQL
语句
"
例如:
mysql -uroot -p -hlocalhost -P3306 mysql -e "select host,user from user"
查看所有用户
select host,user from mysql.user
2、创建用户
CREATE USER
用户名
[IDENTIFIED
BY
'
密码
'
][,
用户名
[IDENTIFIED
BY
'
密码
'
]];
例如:
CREATE USER 'liulala'@'localhost' IDENTIFIED BY '123456';
3、修改用户名
UPDATE mysql.user SET USER='liulala16' WHERE USER='liulala';
FLUSH PRIVILEGES;
4、删除用户
DROP USER user
[,
user
]…;
例如:
DROP USER 'liulala'@'localhost';
5、修改当前用户密码
ALTER USER USER() IDENTIFIED BY 'new_password';
或者
SET PASSWORD='new_password';
6、修改其他用户密码
ALTER USER user
[IDENTIFIED
BY
'
新密码
'
]
[,
user
[IDENTIFIED
BY
'
新密码
'
]]…;
例如:
ALTER USER 'liulala'@'localhost' IDENTIFIED BY '123456';
或者
SET PASSWORD FOR 'liulala'@'localhost'='123456789';
二:权限管理
原则:
1、只授予能 满足需要的最小权限 ,防止用户干坏事。比如用户只是需要查询,那就只给select权限就可 以了,不要给用户赋予update、insert或者delete权限。
2、创建用户的时候 限制用户的登录主机 ,一般是限制成指定IP或者内网IP段。
3、为每个用户 设置满足密码复杂度的密码 。
4、 定期清理不需要的用户 ,回收权限或者删除用户。
授权命令:
GRANT
权限
1,
权限
2,…
权限
n
ON
数据库名称
.
表名称
TO
用户名
@
用户地址
[IDENTIFIED
BY
‘
密码口令
’];
1、查看当前用户权限
SHOW GRANTS;
2、查看某用户的全局权限
SHOW GRANTS FOR 'user'@'主机地址' ;
SHOW GRANTS FOR 'liulala'@'localhost' ;
3、查看所有权限
show privileges;
4、授予权限
GRANT 权限1,权限2,…权限n ON 数据库名称.表名称 TO 用户名@用户地址 [IDENTIFIED BY ‘密码口令’];
该权限如果发现没有该用户,则会直接新建一个用户( 8.0之后的mysql不支持 授权的时候就进行用户创建,所以创建 之后才能授权;)。
例如:给liulala用户授予db11数据库下所有表 增删查改权限
GRANT SELECT,INSERT,DELETE,UPDATE ON db11.* TO liulala@localhost;
例如:给liulala用户授予所有库所有表的全部权限(不包括grant权限)
GRANT ALL PRIVILEGES ON *.* TO liulala@localhost
5、收回权限
#收回全库全表的所有权限
REVOKE ALL PRIVILEGES ON *.* FROM liulala@localhost;
#收回db11库下的所有表的插删改查权限
REVOKE SELECT,INSERT,UPDATE,DELETE ON db11.* FROM liulala@localhost;