|
|
|
|
移动端

2.4.4 存储程序的授权和别名

《Oracle PL/SQL程序设计(第6版)(上下册)》第2章创建和运行PL/SQL代码,本章将展示如何在一个最基本的层面上(使用SQL*Plus)完成上述任务,同时对这些细小差别进行大致的讲述。本节为大家介绍存储程序的授权和别名。

作者:方鑫 译来源:人民邮电出版社|2017-09-06 20:12

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


2.4.4 存储程序的授权和别名

对于一个刚刚创建出来的PL/SQL程序,除了创建者和DBA之外,通常没有其他人有权限执行它。要想给其他人进行授权,可以使用GRANT语句:

  1. GRANT EXECUTE ON wordcount TO scott; 

若想取消授权,则使用REVOKE语句:

  1. REVOKE EXECUTE ON wordcount FROM scott; 

我们也可以把EXECUTE权限授权给一个角色:

  1. GRANT EXECUTE ON wordcount TO all_mis; 

或者,如果合适的话,我们也可以授权给数据库中的所有用户运行程序:

  1. GRANT EXECUTE ON wordcount TO PUBLIC; 

如果把权限赋给了某个用户,比如Scott,同时也赋给了某个角色,而这个用户又被赋予了此角色(以all_mis为例),接着又把权限赋给了PUBLIC,数据库就会一直记录着这三次的授权,直到这些授权被取消。三次授权的任何一次,都已经使得这个用户可以运行这个程序了,所以如果我们决定不再允许Scott运行程序,我们必须一一取消对用户Scott的授权、对PUBLIC的授权和对角色all_mis的授权(或取消对Scott所赋予的该角色)。

若想查看我们对所有其他用户或角色的赋权列表,可以使用USER_TAB_PRIV_MADE数据字典视图,不过PL/SQL的程序名是保存在table_name列的,有点别扭:

  1. SQL> SELECT table_name, grantee, privilege  
  2.   2    FROM USER_TAB_PRIVS_MADE  
  3.   3   WHERE table_name = 'WORDCOUNT';  
  4. TABLE_NAME                    GRANTEE                       PRIVILEGE  
  5. ------------------------------ ------------------------------ -----------  
  6. WORDCOUNT                     PUBLIC                        EXECUTE  
  7. WORDCOUNT                     SCOTT                         EXECUTE  
  8. WORDCOUNT                     ALL_MIS                       EXECUTE 

如果用户Scott拥有对“wordcount”的执行权限,为避免每次使用程序时都要加上所有者schema名称作为前缀,他会想要为程序创建一个别名:

  1. SQL> CONNECT scott/tiger  
  2. Connected.  
  3. SQL>CREATE OR REPLACE SYNONYM wordcount FOR bob.wordcount; 

现在,他只需通过别名来运行程序了:

  1. IF wordcount(localvariable) > 100 THEN... 

这个方法不错,因为如果函数的所有者发生了变化,Scott只需修改别名(而不是所有的存储程序)即可。

我们可以为过程、函数、程序包、用户自定义类型创建别名。过程、函数或程序包的别名不仅可以隐藏schema,还可以隐藏数据库信息,即我们可以为远程数据库中的程序创建别名,与本地数据库没什么不同。不过,别名也只能隐藏schema和数据库信息,我们不能为程序包中的子程序创建别名。

别名的删除也相当容易:

  1. DROP SYNONYM wordcount; 

喜欢的朋友可以添加我们的微信账号:

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Eclipse从入门到精通(第2版)

本书为《Eclipse从入门到精通》一书的全新改版。本书以最新的Eclipse 3.2作为写作版本。全书分为5篇:起步篇介绍了Eclipse及相关插件的安装...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊