### **一:用户管理**
#### **1:登录:**
`mysql -u用户 -h主机信息 -p端口 -p密码;`
#### **2:查看所有用户信息**
所有用户:`select user,host from mysql.user;`
当前用户:`select user();`
#### **3:创建用户**
`create user 用户名@主机名 identified by密码;`
**%:**任意主机使用当前用户可以连接当前数据库服务
**192.168.4.%:**表示192.168.4下面的所有主机都可以连接当前的数据库服务
#### **4:删除**
`drop user 用户名@主机信息`
#### **5:退出登录**
`quit exit`
#### **6:查看用户所拥有的权限【privileges】**
1)查看自己的权限
`show grants;`
*新用户所拥有的权限:usage*
2)管理员或拥有查看别人权限的用户查看其他用户的权限
`show grants for 用户名@主机信息;`
#### 7:查看mysql中所有的权限(管理员或拥有查看权限的用户)
`show privileges;`
#### **8:权限关系**
| **操作的权限命名** | **数据库表中实际管理权限的命名** |
| ------------------ | -------------------------------- |
| `select` | `select_priv` |
| `create user` | `create_user_priv` |
#### 9:常见的权限
**数据操作**
insert
select
update
delete
**表格数据库用户结构操作**
create
create user
create database
create table
create view
drop删除
alter修改
show显示
#### **10:给用户赋予权限【grant】**
**语法:**
`grant 权限1,权限2…… on 数据库.表名 to 用户名@主机名或IP地址【with grant option】`
**解释说明:**
**权限列表:**可以同时给用户赋予多个权限,使用逗号分割
**数据库.表名:**可以指定哪些数据库或者表可以对当前用户有对应权限操作,所有数据库所有的表都可以操作。
**用户名@主机**
**【with grant option】**:允许被赋予权限的用户给其他用户赋权
权限最初的拥有者是root管理员,如果管理员赋予权限的时候没有指定with grant option,那么是不允许用户给其他用户赋权
***注意:***
- mysql数据中,权限给定不是绝对的,例如:如果给了create user,同时也会开启alter user drop user*
- *一般使用数据的时候都是不适用默认用户去操作数据,都是创建新的用户按需操作*
- 出现【Access denied for user】报错是因为该用户没有权限
#### **11:收回权限的语法**
**收回某一个的语法:**
`revoke 权限列表 on 数据库.表名 from 用户名@主机名或IP地址`
**收回所有权限和权限下发的语法:**
`revoke grant option from 用户@主机名`
`revoke all on *.* from 用户@主机名`
#### **12:修改用户的密码**
1)自己修改自己的密码:
`set password=password(“新密码”);`
2)管理员修改其他用户密码:
`set password for 用户名@主机名=password(“新密码”);`
3)既可以修改自己的密码也可以修改别人的密码:
`update 用户名 set password=password(“新密码”)where user=‘用户名’and host=‘主机名或IP`
4)没有登录修改密码
`mysqladmin -u用户名 -p旧密码 password 新密码`
#### **13:密码管理**
**语法:**
`alter user 用户名@’localhost‘ password expire `;强制过期
` alter user 用户名@’localhost‘ password expire never; `不过期
`alter user 用户名@’localhost‘ password expire default;`默认策略
`alter user 用户名@’localhost‘ password expire interval 数值 DAY; `多少天后过期
#### **14:刷新权限操作**
`flush privileges`刷新权限