MySQL创建用户&授权数据库


MySQL等主流数据库的最高权限一般是root用户. 有时我们需要提供数据库的账号和密码以使用某些服务. 但实际上每个服务只会使用1个左右的数据库. 直接将root账号和密码随意分配是一件很危险的事情. 所以我们需要单独的创建用户, 并授权需要的数据库给它.

用户管理

创建用户

创建用户harrison, 并指定IP为192.118.1.1; 设置密码为123

CREATE USER 'harrison' @'192.118.1.1' IDENTIFIED BY '123';

创建用户harrison, 任意IP即可登录; 设置密码为123

CREATE USER 'harrison' @'%' IDENTIFIED BY '123';

删除用户

删除用户名为harrison, 且IP为192.118.1.1的用户

DROP USER 'harrison' @'192.118.1.1';

修改用户名及IP

修改用户名为harrison, 不限制登录IP的用户 -> 用户名harry, 限制登录IP为192.168.1.1

RENAME USER 'harrison' @'%' TO 'harry' @'192.168.1.1';

修改用户密码

修改用户名为harrison, 不限制登录IP的用户的密码为456

SET PASSWORD FOR 'harrison' @'%' = PASSWORD ( '456' );

用户授权

查看用户拥有权限

查看用户harrison拥有的权限:

SHOW GRANTS FOR 'harrison' @'%';

赋予权限

为harrison提供db1数据库的table1表SELECT(查询)、INSERT(新增)、UPDATE(修改)权限

GRANT 
	SELECT,
	INSERT,
	UPDATE ON db1.table1 TO "harrison" @'%';

为harrison提供db1数据库的全部增删改查权限

GRANT ALL PRIVILEGES ON db1.* TO "harrison" @'%';

撤回权限

撤回harrison对db1数据库的table1表的全部权限

REVOKE ALL ON db1.table1 
FROM
	'harrison' @"%";

撤回harrison对db1数据库的全部权限

REVOKE ALL ON db1.* 
FROM
	'harrison' @"%";

感谢

  • MySQL官方网站
  • MySQL创建用户和授权

结语

若你对本篇文章有任何问题, 欢迎在下方评论区讨论, 或加入阿航的技术小站交流群

欢迎访问阿航的技术小站官网, 获取更多技术干货!

你可能感兴趣的:(SQL,数据库)