MySQL之User(用户)和Privilege(权限)

用户管理

在mysql库user表中存储着所有用户:
SELECT * FROM user\G
主要字段含义:HOST:访问端 USER:用户 authentication_string:密码(加密格式)
在这里插入图片描述
①创建用户
CREATE USER 用户名[@访问端(ip/localhost)] identified by ‘密码’
创建新用户,默认所有远程主机(同 %),此处指定访问端时可使用通配符(%,_)

②修改名称
RENAME USER 用户名@访问端 TO 新用户名@访问端

③修改密码(mysql8.0之后)
修改当前用户密码:ALTER USER USER() IDENTIFIED BY ‘新密码’
修改其他用户密码:
ALTER USER 用户名@访问端 IDENTIFIED BY ‘新密码’
SET PASSWORD FOR 用户名@访问端 = ‘新密码’ (5.7版本前为PASSWORD(‘新密码’)

④删除用户
DROP USER 用户名@访问端

TIPS:
⑴关于 FLUSH PRIVILEGES
使用账号管理语句修改权限表,mysql服务会注意到这些改动并立即将其加载到内存当中。
账号管理语句包括GRANT, REVOKE, SET PASSWORD, RENAME USER四个。

INSERT, UPDATE, DELETE(DELETE不推荐使用)修改权限表,即MYSQL.USER表
除非你重新加载这个表,或者重启数据库,这些操作是不会影响权限检查的,此时需用FLUSH PRIVILEGES(重新加载)。

⑵有关mysql8.0之后连接SQLyog的问题
由于加密方式的改变,使得SQLyog无法正常识别用户密码,此时需修改密码加密的格式
ALTER USER 用户名@访问端 IDENTIFIED WITH mysql_native_password BY ‘新密码’

权限管理

在mysql库user表中以_priv结尾字段均为权限

①权限授予
GRANT:
GRANT INSERT/DELETE/SELECT/UPDATE等(权限类型) ON 数据库.表 TO 用户名@访问端
PS:所有权限:all privileges 所有库及所有表:*·*
在用户名@访问端 后跟 IDENTIFIED BY ‘密码’ 时,若用户不存在,则会直接创建并授权
在用户名@访问端 后跟 WITH GRANT OPTION ,表明允许该用户将权限授予其他用户
如:

GRANT all privileges ON *.* TO user01@'%' WITH GRANT OPTION;

在这里插入图片描述

②权限收回
REVOKE:REVOKE 权限名 ON 数据库.表 FROM 用户@访问端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值