Heim >Datenbank >MySQL-Tutorial >Oracle之AUTHID CURRENT_USER

Oracle之AUTHID CURRENT_USER

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 16:46:121094Durchsuche

没有AUTHID CURRENT_USER表示定义者权限(definer rights),以定义者身份执行;加上AUTHID CURRENT_USER表示调用者权限(invoke

没有AUTHID CURRENT_USER表示定义者权限(definer rights),以定义者身份执行;加上AUTHID CURRENT_USER表示调用者权限(invoker rights),以调用者身份执行。

例: 

1. 创建两个用户:xxpo,xxgl

2. 在xxpo下创建一张表:xxpo_authid_test

  • CREATE TABLE xxpo.xxpo_authid_test(ID NUMBER,NAME VARCHAR2(20));  
  • 3. 在xxpo下创建如下两个procedure

    3.1 xxpo_no_authid_test_prc:

    3.2 xxpo_has_authid_test_prc:

    4. 将两个procedure的执行权限(EXECUTE)赋予xxgl:

    5. 在xxgl分别调用xxpo下面的两个procedure,查看结果:

    由于我们并没有在xxgl用户下创建一个名为xxpo_authid_test的表,所以当我们在xxgl用户下以调用者(xxgl)权限去执行xxpo.xxpo_has_authid_test_prc这个procedure的时候,会报表不能找到(ORA-00942)的错误;而以定义者(xxpo)权限去执行则不存在此问题。

    linux

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn