【DB笔试面试110】在Oracle中,下列关于AUTHID的说法哪些是正确的?()_Oracle




Q          题目如下所示:


 下列关于AUTHID的说法哪些是正确的?()

A、AUTHID子句是用于指定哪些用户被授权执行一个程序单元

B、从Oracle 11gR1开始,所有的程序单元都必须指明AUTHID属性

C、一个PL/SQL程序的AUTHID属性会影响该程序在运行的时候发出的SQL语句所涉及的名字解析和权限检查

D、AUTHID属性可以在包头(Package Specification)和对象类型的头部(Object Type Specification)指定,但不能够在包体(Package Body)和类型体(Object Type Body)指定


     
A          答案:C、D。          


       

    本题中,对于选项A,AUTHID子句是用于指定一个程序单元是运行于“调用者权限”(AUTHID CURRENT_USER)还是“定义者权限”(AUTHID DEFINER)。所以,选项A错误。

对于选项B,AUTHID子句是可选的,缺省设置为AUTHID DEFINER。所以,选项B错误。

对于选项C,实际上这就是Oracle文档中关于AUTHID的定义。所以,选项C正确。

对于选项D,AUTHID可以在CREATE FUNCTION、CREATE PACKAGE、CREATE PROCEDURE、CREATE TYPE和ALTER TYPE中包含。但不能在CREATE PACKAGE BODY或者CREATE TYPE BODY中包含AUTHID。所以,选项C正确。

所以,本题的答案为C、D。