mysql5.7 权限详解
时间: 2023-06-29 10:06:12 浏览: 220
MySQL 5.7 的权限系统主要分为以下几个方面:
1. 用户管理:包括创建、修改、删除用户及其密码等。
2. 权限管理:包括授权、回收权限等。
3. 角色管理:角色是一组权限的集合,可以将角色授权给用户,简化权限管理。
4. 权限检查:在用户访问数据库时进行权限检查,决定用户是否有权进行操作。
下面是具体的权限详解:
1. 用户管理
创建用户:可以使用 CREATE USER 语句创建用户。例如,创建一个名为 "test" 的用户并设置密码:
```
CREATE USER 'test'@'localhost' IDENTIFIED BY 'password';
```
修改用户:可以使用 ALTER USER 语句修改用户信息,例如,修改用户的密码:
```
ALTER USER 'test'@'localhost' IDENTIFIED BY 'new_password';
```
删除用户:可以使用 DROP USER 语句删除用户:
```
DROP USER 'test'@'localhost';
```
2. 权限管理
授权:可以使用 GRANT 语句授权给用户或角色执行某些操作的权限。例如,授权用户 "test" 在 "example" 数据库中查询、插入、更新和删除的权限:
```
GRANT SELECT, INSERT, UPDATE, DELETE ON example.* TO 'test'@'localhost';
```
回收权限:可以使用 REVOKE 语句回收用户或角色的某些权限。例如,回收用户 "test" 在 "example" 数据库中删除数据的权限:
```
REVOKE DELETE ON example.* FROM 'test'@'localhost';
```
3. 角色管理
创建角色:可以使用 CREATE ROLE 语句创建角色。例如,创建一个名为 "developer" 的角色:
```
CREATE ROLE developer;
```
授权角色:可以使用 GRANT 语句将权限授予角色。例如,将 "developer" 角色授权在 "example" 数据库中查询的权限:
```
GRANT SELECT ON example.* TO developer;
```
将角色授权给用户:可以使用 GRANT 语句将角色授权给用户。例如,将 "developer" 角色授权给用户 "test":
```
GRANT developer TO 'test'@'localhost';
```
回收角色授权:可以使用 REVOKE 语句回收角色的授权。例如,将 "developer" 角色从用户 "test" 中回收:
```
REVOKE developer FROM 'test'@'localhost';
```
删除角色:可以使用 DROP ROLE 语句删除角色。例如,删除 "developer" 角色:
```
DROP ROLE developer;
```
4. 权限检查
MySQL 在用户访问数据库时会进行权限检查,判断用户是否有权限进行操作。如果用户没有权限,则会拒绝该操作并返回错误信息。例如,当用户 "test" 尝试在 "example" 数据库中删除数据时,如果该用户没有删除数据的权限,则会返回以下错误信息:
```
ERROR 1142 (42000): DELETE command denied to user 'test'@'localhost' for table 'example'
```
以上就是 MySQL 5.7 的权限系统的详解。
阅读全文