文章目录
- 用户管理
- 创建用户
- 查看用户
- 字段解释
- host
- User
- select_priv , insert_priv等
- 修改密码
- 修改用户
- 删除用户
- 权限管理
- 查看权限
- 查看当前用户权限
- 查看某用户的全局权限
- 查看某用户的某库的权限
- 查看某用户的某个表的权限
- 授予权限
- 例一
- 例二
- 例三
- 收回权限
- 例一
- 例二
专栏目录请点击
用户管理
创建用户
CREATE USER zhangsan IDENTIFIED BY '123456';
执行结果如下
查看用户
SELECT * FROM mysql.user;
字段解释
host
表示连接的类型
- % 表示所有远程通过 TCP方式的连接
- IP 地址 如 (192.168.1.2,127.0.0.1) 通过制定ip地址进行的TCP方式的连接
- 机器名 通过制定i网络中的机器名进行的TCP方式的连接
- ::1 IPv6的本地ip地址 等同于IPv4的 127.0.0.1
- localhost 本地方式通过命令行方式的连接 ,比如mysql -u xxx -p 123xxx 方式的连接
User
表示用户名
同一用户通过不同方式链接的权限是不一样的。
select_priv , insert_priv等
为该用户所拥有的权限。
修改密码
修改当前用户密码
SET PASSWORD =PASSWORD('123456')
修改某个用户的密码
UPDATE mysql.user SET PASSWORD=PASSWORD('123123') WHERE USER='zhangsan';
FLUSH PRIVILEGES; #所有通过user表的修改,必须用该命令才能生效。
修改用户
UPDATE mysql.user SET USER='zhangsan' WHERE USER='zhangsi';
FLUSH PRIVILEGES; #所有通过user表的修改,必须用该命令才能生效。
删除用户
DROP USER zhangsan ;
通过
DELETE FROM USER WHERE USER='zhangsan'
用户数据会有残留
权限管理
查看权限
查看当前用户权限
SHOW GRANTS;
查看某用户的全局权限
select * from user ;
查看某用户的某库的权限
select * from db;
查看某用户的某个表的权限
select * from tables_priv;
授予权限
GRANT 权限1,权限2,…权限n ON 数据库名称.表名称 TO 用户名@用户地址 IDENTIFIED BY ‘连接口令’;
- 该权限如果发现没有该用户,则会直接新建一个用户
例一
GRANT SELECT,INSERT,DELETE,DROP ON hello.* TO zhangsan@localhost ;
- 授予hello这个库下的所有表的插删改查的权限
例二
GRANT ALL PRIVILEGES ON *.* TO joe@'%' IDENTIFIED BY '123';
- 授予通过网络方式登录的的joe用户 ,对所有库所有表的全部权限,密码设为123
- 就算 all privileges 了所有权限,grant_priv 权限也只有 root 才能拥有
例三
给root用户赋链接命令
GRANT ALL PRIVILEGES ON *.* TO root@'%';
- 后新建的连接没有密码,需要设置密码才能远程连接。
UPDATE USER SET PASSWORD=PASSWORD('root') WHERE USER='root' AND HOST='%';
收回权限
必须用户重新登录后才能生效
REVOKE 权限1,权限2,…权限n ON 数据库名称.表名称 FROM 用户名@用户地址 ;
例一
REVOKE ALL PRIVILEGES ON mysql.* FROM joe@localhost;
收回全库全表的所有权限
例二
REVOKE select,insert,update,delete ON mysql.* FROM joe@localhost;
- 收回mysql库下的所有表的插删改查权限