热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

GBASE:GBase8sSQL指南:语法_2CREATEPROCEDURE语句(5)

使用CREATEPROCEDURE的必要特权必须拥有数据库上的Resource特权来在该数据库中创建用户定义的过程。在能创建SPL过程之前,您还必须拥有要编写的过程中的SPL、C或

使用 CREATE PROCEDURE 的必要特权 

必须拥有数据库上的 Resource 特权来在该数据库中创建用户定义的过程。 

在能创建 SPL 过程之前,您还必须拥有要编写的过程中的 SPL 、C 或 Java™语言的 Usage 特
权。有关更多信息,请参阅语言级权限。

缺省情况下,SPL 上的 Usage 特权授权为 PUBLIC 。您还必须至少拥有数据库上的 Resource 特
权来在该数据库中创建 SPL 过程。 

DBA 关键字和过程上的特权 

如果创建带有 DBA 关键字的 UDR ,则其称为 DBA 特权 UDR 。您需要 DBA 特权来创建或者执行 DBA 特权的 UDR 。 

在不具有 DBA 特权的用户中,只有 DBA 授予 Execute 权限的用户才能调用 DBA 特权
UDR。

然而,如果 DBA 将 Execute 特权授予 PUBLIC ,则所有的用户都可以使用 DBA 特权
UDR 。有关 DBA 特权 UDR 的其它信息,请参阅创建数据库对象的所有权 。

如果您省略 DBA 关键字,则此 UDR 称为所有者特权 UDR 。
当您在兼容 ANSI 的数据库中创建了所有者特权 UDR 时,只有您自己能执行此 UDR。

在其它用户可以执行所有者特权 UDR 之前,它的所有者必须将 Execute 特权授权给个别用户或角色或者
PUBLIC 。 

如果您在不兼容 ANSI 的数据库中创建了所有者特权 UDR ,则任何人都可以执行此 UDR ,因
为缺省情况下 PUBLIC 被授予 Execute 特权。

要限制指定用户对所有者特权 UDR 的存取,则所有者必须从 PUBLIC 撤销其在 UDR 上的 Execute 特权,然后将它授权给指定的用户或角色。


NODEFDAC 环境变量设置成 yes 可以阻止该 UDR 上的权限被缺省授予给 PUBLIC 。

如果该环境变量设置成 yes ,则除了此 UDR 的所有者,其它任何人都不能调用此 UDR ,除非所有者将此 UDR 的 Execute 特权授权给其他用户。


推荐阅读
author-avatar
气质未央若
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有