南大通用GBase8s 常用SQL语句(189)

语言级权限

要注册或删除用 SPL、C 或 Java™ 语言编写的 UDR,用户必须持有对用以编写该例程的编程语言的 Usage 权限。

这是对于指定要取消的语言级权限的 USAGE ON LANGUAGE 子句的语法:

语言级权限

 

每一 REVOKE USAGE ON LANGUAGE 语句可指定不多于一种编程语言。

当用户注册以 SPL、C 或 Java 语言编写的 UDR 时,数据库服务器验证该用户是否有对用以编写该 UDR 的语言的 Usage 权限。 如果该用户不具权限,则 CREATE FUNCTION 或 CREATE PROCEDURE 语句失败并报错。 如果 IFX_EXTEND_ROLE 配置参数已启用内建的 EXTEND 角色,则仅还持有那个角色的用户可注册或删除以 C 语言或以 Java 语言编写的 UDR,即使用户持有对那些语言的 USAGE ON LANGUAGE 权限。

要从用户或角色取消对编程语言的 Usage 权限,请发出包括 USAGE ON LANGUAGE 关键字和指定该编程语言的关键字的 REVOKE 语句。如果此语句成功,则任何您在 FROM 子句中指定的用户或角色都可不再注册那些以该语言编写的 UDR。例如,如果您从 PUBLIC 取消对 SPL 的缺省的 Usage 权限,则从所有用户剥夺创建 SPL 例程的能力(除了那些已被单独地授予了对该 SPL 语言的 Usage 权限的用户,或通过角色持有那 Usage 权限的用户之外):

REVOKE USAGE ON LANGUAGE SPL FROM PUBLIC;

您可发出 GRANT USAGE ON LANGUAGE 语句来给受限的组恢复对 SPL 的 Usage 权限,比如,给名为 developers 的角色:

GRANT USAGE ON LANGUAGE SPL TO developers;

序列级权限

虽然 GBase 8s 以表的形式实现序列对象,但仅可对序列授予或取消表权限的下列子集(如 表级权限 中所述):

  • Select 权限
  • Alter 权限

使用下列语法来指定要对序列对象取消的权限:

序列级权限

 

元素

描述

限制

语法

owner

序列或其同义词的所有者

必须为所有者

所有者名称

sequence

要取消其权限的序列

必须存在

标识符

synonym

序列对象的同义词

必须指向序列

标识符

序列必须驻留在当前的数据库中。(您可以有效的 owner 名称限定 sequence 或 synonym 标识符,但远程的 database 的名称(或 database@server)为无效限定符。)取消序列级权限的语法是对 SQL 的 ANSI/ISO 标准的扩展。

Alter 权限

您可从另一用户、从 PUBLIC 或从角色取消对序列的 Alter 权限。Alter 权限使得指定的用户或角色能以 ALTER SEQUENCE 语句修改序列的定义,或以 RENAME SEQUENCE 语句重命名该序列。

下列 REVOKE 语句取消分别授予用户 mark 对 cust_seq 序列对象的任何 Alter 权限:

REVOKE ALTER ON cust_seq FROM mark;

Select 权限

您可从另一用户、从 PUBLIC 或从角色取消对序列的 Select 权限。Select 权限使得用户或角色能使用 SQL 语句中的 sequence.CURRVAL 和 sequence.NEXTVAL 来访问和增大序列的值。

下列 REVOKE 语句取消单独地授予用户 mark 对 cust_seq 序列对象的任何 Select 权限:

REVOKE SELECT ON cust_seq FROM mark;

ALL 关键字

您可使用 ALL 关键字来从另一用户、从 PUBLIC 或从角色同时取消 Alter 和 Select 权限。

下例取消用户 mark 对 cust_seq 序列对象持有的任何 Alter 和 Select 权限:

REVOKE ALL ON cust_seq FROM mark;

在此语句执行之后,mark 是否仍可访问 cust_seq 取决于该用户是否仍持有授予 PUBLIC 的对 cust_seq 的 Alter 或 Select 权限,或他是否持有已授予了的对 cust_seq 的未取消的权限的角色。

用户列表

跟在 REVOKE 的 FROM 关键字之后的授权标识符(或 PUBLIC 关键字)指定失去取消了的权限或取消了的角色的用户。 如果您使用 PUBLIC 关键字作为用户列表,则 REVOKE 语句从 PUBLIC 取消指定的权限或角色,从而从所有用户到尚未显式地授予权限或角色的用户,或从未通过已收到的角色或权限而持有一些其他角色的用户取消它们。

user list 可包含单个用户或多个用户的授权标识符,以逗号分隔。如果您使用 PUBLIC 关键字作为用户列表,则 REVOKE 语句从所有用户取消指定的权限。

用户列表

 

元素

描述

限制

语法

user

您正在取消其权限的用户的登录名

必须为有效的授权标识符

所有者名称

在该列表中用户名称的拼写与在 GRANT 语句中的拼写完全一致。您可有选择地在该列表中使用括起每一用户名称的引号来保留大小写。在符合 ANSI 的数据库中,如果您不使用引号来定界 user,则以大写字母存储该用户的名称,除非在初始化数据库服务器之前 ANSIOWNER 环境变量设置成了 1。

当您指定登录名时,可使用 REVOKE 语句和 GRANT 语句来有选择地确保数据库对象的各种类型。要了解示例,请参阅 何时在 GRANT 之前使用 REVOKE。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值