您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

撤消用户的 CHANGE PASSWORD 系统特权

移除用户管理口令和管理系统特权的权限。

先决条件

需要具备所授予的 CHANGE PASSWORD 系统特权以及管理权限。

背景信息

可使用不同子句向某位用户多次授予 CHANGE PASSWORD 系统特权。例如,使用 ANY 子句为 User1 授予一次 CHANGE PASSWORD 系统特权,然后再使用 子句授予一次该特权。在多次授予的情况下,必须使用 GRANT 语句所用的同一子句格式来进行撤消。

仍以上例为例,如果使用 ANY 子句撤消 User1 的系统特权,则使用 子句进行的授予仍生效。实际效果是 User1 现在只能够管理 中用户的口令。或者,如果使用 子句撤消 User1 的系统特权,则使用 ANY 子句进行的授予仍生效。此时的实际效果是 User1 可继续管理数据库中任意用户的口令。

过程

要撤消 CHANGE PASSWORD 系统特权,请执行下列语句之一: 撤消权限的类型说明仅系统特权的管理权限REVOKE ADMIN OPTION FOR CHANGE PASSWORD ( ANY ) FROM用于管理任意数据库用户的口令的系统特权,包括管理权限REVOKE CHANGE PASSWORDFROM用于管理指定用户的口令的系统特权REVOKE CHANGE PASSWORD ( ) FROM用于管理指定角色的口令的系统特权REVOKE CHANGE PASSWORD ( ANY WITH ROLES ) FROM

示例

以下两条语句用于移除 Sam 更改任意数据库用户口令的权限:

REVOKE CHANGE PASSWORD (ANY) FROM Sam

or

GRANT CHANGE PASSWORD TO Sam

假设已通过 ANY 和 WITH ADMIN OPTION 子句为 Frank 授予了 CHANGE PASSWORD 系统特权,以下语句将仅移除 Frank 管理系统特权的权限。他可以继续更改数据库中任意用户的口令。

REVOKE ADMIN OPTION FOR CHANGE PASSWORD (ANY) FROM Frank

以下语句移除 Sally 和 Bob 更改 Jane、Joe 和 Laurel(仅限这三者)的口令的权限:

REVOKE CHANGE PASSWORD (Jane, Joe, Laurel) FROM Sally, Bob

以下语句移除 Mary 更改 Sales1 角色任意成员的口令的权限:

REVOKE CHANGE PASSWORD (ANY WITH ROLES Sales1) FROM Mary

以下语句移除 Sarah 更改 Joe 或 Sue 的口令或者更改 Sales2 角色任意成员的口令的权限:

REVOKE CHANGE PASSWORD (Joe, Sue), (ANY WITH ROLES Sales2) FROM Sarah

以下语句移除 Joan 更改 Marketing1 或 Marketing2 角色任意成员的口令的权限:

REVOKE CHANGE PASSWORD (ANY WITH ROLES Marketing1, Markeing2) FROM Joan