# GRANT 与 REVOKE

URL: https://caijiao.org/mariadb/security/privilege/grant
Source: docs/mariadb/security/privilege/grant.md
Description: 本节介绍 MariaDB 中授权和撤销权限的操作，使用 GRANT 和 REVOKE 命令灵活管理用户权限，保障数据库安全与访问控制。

## 1. 授权（GRANT）

`GRANT` 用于赋予用户访问数据库及操作权限，语法如下：

```sql
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机';
````

示例：授予用户 `alice` 在 `testdb` 数据库所有表的查询和插入权限：

```sql
GRANT SELECT, INSERT ON testdb.* TO 'alice'@'localhost';
```

赋予所有权限：

```sql
GRANT ALL PRIVILEGES ON testdb.* TO 'alice'@'localhost';
```

执行授权后，通常需要刷新权限：

```sql
FLUSH PRIVILEGES;
```

## 2. 撤销权限（REVOKE）

`REVOKE` 用于收回已授权的权限，语法如下：

```sql
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机';
```

示例：撤销用户 `alice` 在 `testdb` 数据库的插入权限：

```sql
REVOKE INSERT ON testdb.* FROM 'alice'@'localhost';
```

## 3. 查看用户权限

```sql
SHOW GRANTS FOR '用户名'@'主机';
```

示例：

```sql
SHOW GRANTS FOR 'alice'@'localhost';
```

---

合理使用 GRANT 和 REVOKE 命令，可有效控制用户权限，保障数据库安全和稳定运行。
