REVOKE(用户定义的扩展)
语法
REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL PRIVILEGES }
ON {
UDx‑type [[database.]schema.]function‑name( [argument‑list] )[,...]
| ALL FUNCTIONS IN SCHEMA schema[,...] }
FROM grantee[,...]
参数
-
GRANT OPTION FOR
撤销指定权限的授予选项。被授予者的当前权限不受影响。如果省略此子句,Vertica 将同时撤销授予选项和当前权限。
EXECUTE
- 撤销被授予者运行指定函数的能力。
ALL [PRIVILEGES]
- 撤销同时属于调用者的所有函数权限。用户无法撤销其自身没有的权限。
可选关键字
PRIVILEGES
符合 SQL 标准。 -
ON UDx‑type
- 指定函数的用户定义的扩展 (UDx) 类型,其中 UDx‑type 为以下几项之一:
-
FUNCTION
-
AGGREGATE FUNCTION
-
ANALYTIC FUNCTION
-
TRANSFORM FUNCTION
-
FILTER
-
PARSER
-
SOURCE
-
-
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。- function‑name
- 要撤销其权限的用户定义函数的名称。
-
ON ALL FUNCTIONS IN SCHEMA schema
- 撤销对指定架构中所有函数的权限。
- argument-list
- 对所有多态函数都是必需的,是一个逗号分隔的函数实参列表,其中每个实参指定如下:
[argname] argtype
如果过程未定义实参,请提供一个空的实参列表。
- grantee
指定其权限被撤销的用户,可以为以下用户之一:
CASCADE
I
如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则CASCADE
会指定搜索这些用户并同时撤销他们的权限。
特权
非超级用户,为以下之一:
-
目标函数的所有者
-
可以选择 (
WITH GRANT OPTION
) 将这些权限扩展到其他用户的权限被授予者
示例
撤销用户 Bob
对函数 myzeroifnull
的 EXECUTE
权限:
=> REVOKE EXECUTE ON FUNCTION myzeroifnull (x INT) FROM Bob;
撤销用户 Doug
对函数 Pagerank
的所有权限:
=> REVOKE ALL ON TRANSFORM FUNCTION Pagerank (t float) FROM Doug;
撤销用户 Bob 对 zero-schema
架构中所有函数的 EXECUTE
权限:
=> REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA zero-schema FROM Bob;
撤销用户 Bob 对 tokenize
函数的 EXECUTE
权限:
=> REVOKE EXECUTE ON TRANSFORM FUNCTION tokenize(VARCHAR) FROM Bob;
撤销用户 Alice 对 ExampleSource()
源的所有权限:
=> REVOKE ALL ON SOURCE ExampleSource() FROM Alice;