mysql怎么改用户授权
时间 : 2023-03-08 03:26:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

首先,连接 MySQL 数据库:

```bash

mysql -u 用户名 -p

然后,输入密码并回车,登录到 MySQL。

查询当前已经存在的用户和权限:

```sql

SELECT User, Host, Password FROM mysql.user;

我们将修改已有用户的权限,假设现在要将用户名为 `user1` 的用户权限修改为:

- 只拥有 `database1` 数据库的 `SELECT` 权限;

- 拥有 `database2` 数据库的所有权限;

- 对其他数据库没有访问权限。

下面分别介绍修改操作:

### 修改 SELECT 权限

```sql

GRANT SELECT ON database1.* TO 'user1'@'localhost';

FLUSH PRIVILEGES;

上述语句将 `SELECT` 权限授予 `user1` 用户,该用户只能在 `database1` 数据库中进行 `SELECT` 操作。

### 授予所有权限

首先,需要创建一个新的用户并授予所有权限:

```sql

CREATE USER 'user2'@'localhost' IDENTIFIED BY 'password2';

GRANT ALL PRIVILEGES ON database2.* TO 'user2'@'localhost';

上述语句创建了一个用户名为 `user2` 的用户,并给他授予了 `database2` 数据库上的所有权限。

然后,将 `user1` 用户权限进行替换:

```sql

REVOKE ALL PRIVILEGES ON *.* FROM 'user1'@'localhost';

GRANT USAGE ON *.* TO 'user1'@'localhost';

GRANT SELECT ON database1.* TO 'user1'@'localhost';

GRANT ALL PRIVILEGES ON database2.* TO 'user1'@'localhost';

FLUSH PRIVILEGES;

上述语句将 `user1` 用户权限取消,并重新授权,只拥有 `SELECT` 权限的 `database1` 数据库和拥有所有权限的 `database2` 数据库。

### 同时授予和取消权限

可以使用 `GRANT` 和 `REVOKE` 命令来同时授予和取消权限:

```sql

GRANT SELECT ON database1.* TO 'user1'@'localhost';

REVOKE INSERT, UPDATE ON database1.* FROM 'user1'@'localhost';

GRANT ALL PRIVILEGES ON database2.* TO 'user1'@'localhost';

FLUSH PRIVILEGES;

上述语句将 `user1` 用户的 `INSERT` 和 `UPDATE` 权限取消,同时授予 `ALL PRIVILEGES` 权限于 `database2` 数据库。

最后,退出 MySQL:

```sql

EXIT;

以上就是修改 MySQL 用户权限的几种方法,根据实际需求选择不同的用法。