MySQL创建用户,用户授权,删除用户
1. 创建用户
创建 admin 用户,密码 123456,'%' 表示任何 IP 都可以访问。
create user 'admin'@'%' identified by '123456'; create user 'admin'@'%' identified with 'mysql_native_password' by '123456'; create user if not exists 'admin'@'%' identified with 'mysql_native_password' by '123456';
MySQL8 启用了新的用户加密方式,而新的加密方式对旧的程序不兼容,所以指定 mysql_native_password 这个旧的用户加密方式。
或者直接在 my.cnf 配置文件中配置如下参数,则默认创建的用户都是 mysql_native_password 加密方式。
default_authentication_plugin = mysql_native_password
查询用户:
select user,host from mysql.user; show create user admin@'%';
2. 用户授权
可以给某个用户授予所有库的权限,也可以只授予指定库的权限,或者授予指定表的权限。
# 授予所有库的所有操作权限 grant all on *.* to 'admin'@'%'; # 授予指定库的所有操作权限 grant all on db.* to 'admin'@'%'; # 授予指定库表的所有操作权限 grant all on db.t1 to 'admin'@'%'; # 授权到表的字段,id,name可以select查询,age 可以更新 grant select(id,name),update(age) on db.t1 to 'admin'@'%';
MySQL 常用的权限种类:
- ALL
- ALTER
- CREATE
- DROP
- SELECT
- INSERT
- UPDATE
- DELETE
- INDEX
- RELOAD
- GRANT OPTION
- SUPER
- USAGE
- 等等,参考链接:https://dev.mysql.com/doc/refman/8.0/en/grant.html
查询用户授权情况:
show grants for admin@'%'
3. 删除用户权限
使用 revoke 语法删除用户权限,如下:
revoke all on db.t1 from admin@'%'; revoke update on db.* from admin@'%'; revoke insert,delete on db.* from admin@'%';
4. 删除用户
drop user admin@'%'; drop user if exists admin1@'%';
文章评论
共0条评论