MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL Revoke撤销

我们已经学习了如何授予从授予特权到用户帐户的访问权限。现在,我们将学习从用户帐户撤消特权。 MySQL提供REVOKE语句以从用户帐户中删除特权。

REVOKE语句

revoke语句使系统管理员可以 撤消特权和角色。 到MySQL用户帐户,这样他们就不能使用过去对数据库分配的权限。

语法

以下内容是使用REVOKE语句的基本语法:
REVOKE privilege_name(s) 
ON object 
FROM user_account_name;

参数说明

在以上语法中,我们可以具有以下参数:
参数名称 说明
privilege_name(s) 它指定了我们要从用户帐户撤消的访问权限或授予特权。
object 它确定授予访问权限的特权级别。这意味着向表授予特权;那么该对象应该是表的名称。
user_account_name 它确定我们要撤消访问权限的用户的帐户名。

特权级别

MySQL 支持以下特权级别:
特权级别 语法 说明
Global REVOKE ALL ON mydb.* FROM john@localhost; 它适用于删除MySQL服务器上用户的所有访问权限。
Database REVOKE ALL ON mydb.* FROM john@localhost; 它适用于撤消当前数据库中对象的所有特权。
Table REVOKE DELETE ON mydb.employees FROM john@localhsot; 它适用于撤消指定表中所有列的特权。
Column REVOKE SELECT (col1), INSERT (col1, col2), UPDATE (col2) ON mydb.mytable FROM john@localhost; 它适用于从表的单个列撤消特权。
Stored Routine REVOKE EXECUTE ON PROCEDURE/FUNCTION mydb.myprocedure FROM john@localhost; 它适用于从存储的例程(过程和函数)中撤消所有特权。
Proxy REVOKE PROXY ON root FROM peter@localhost; 它使我们能够撤消代理用户。

REVOKE语句示例

通过示例让我们了解REVOKE特权。首先,我们需要使用以下语句创建一个名为" john @ localhost "的新用户:
mysql> CREATE USER john@localhost IDENTIFIED BY 'jtp12345';  
接下来,使用以下语句将当前服务器中所有数据库的所有特权分配给john @ localhost:
mysql> GRANT ALL ON mystudentdb.* TO john@localhost;
接下来,执行SHOW GRANT语句以验证特权。在输出中,我们可以看到所有特权均已分配给当前服务器中所有数据库的john @ localhost。
 MySQL Revoke Privilege
如果我们想撤销分配给用户的所有特权,请执行以下语句:
mysql> REVOKE ALL, GRANT OPTION FROM john@localhost;
我们将在下面获得输出,我们可以看到用户可以在没有任何特权的情况下登录数据库。
MySQL Revoke Privilege

从用户帐户中撤消选择的特权

假设我们已经向mystudentdb提供了SELECT,INSERT和UPDATE命令的授予特权给用户带有以下语句:
mysql> GRANT SELECT, UPDATE, INSERT ON mystudentdb.* TO john@localhost;
接下来,使用以下语句显示GRANT特权:
mysql> SHOW GRANTS for john@localhost;
最后,执行REVOKE语句以使用以下语句删除UPDATE和 INSERT 特权:
mysql> REVOKE UPDATE, INSERT ON mystudentdb.* FROM john@localhost;
在仅保留SELECT特权的地方,将显示以下输出。
MySQL Revoke Privilege

REVOKE代理用户示例

首先,我们需要使用以下语句将代理特权授予您想要的用户:
mysql> GRANT PROXY ON 'peter@lidihuo' TO 'john'@'localhost' WITH GRANT OPTION;
接下来,使用给定的语句显示GRANT特权:
mysql> SHOW GRANTS for 'john'@'localhost';
最后,执行REVOKE语句,使用以下语句从用户删除代理特权:
mysql> REVOKE PROXY ON 'peter@lidihuo' FROM 'john'@'localhost';
在成功撤消代理特权的情况下,将提供以下输出。
MySQL Revoke Privilege

从存储的例程示例中撤消特权

此处,撤消特权适用于 过程和功能,在这里,我们可以从拥有以下特权的用户那里撤消特权:
通过示例让我们理解它。假设我们有一个函数 calculatesalary ,并想向用户john授予 EXECUTE 特权,请运行以下查询:
mysql> GRANT EXECUTE ON FUNCTION calculatesalary TO john@localhost;
如果需要撤消对用户的EXECUTE特权,我们必须运行以下命令:
mysql> REVOKE EXECUTE ON FUNCTION calculatesalary TO john@localhost;
我们可以从下面的列表中撤消特权,可以在其中应用特权。
CREATE: 它使用户帐户可以创建数据库和表。 DROP: 它允许用户帐户删除数据库和表。 DELETE: 它使用户帐户可以从特定表中删除行。 INSERT: 它允许用户帐户将行插入到特定表中。 SELECT: 它使用户帐户能够读取数据库。 UPDATE: 它使用户帐户能够更新表行。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4