当执行此 UDR 时,除非为建立的对象指定了其它所有者,否则创建所有者特权 UDR 的用户,而非执行此 UDR 的用户拥有此 UDR 创建的任何数据库对象。
CREATE FUNCTION func1 () RETURNING INT; CREATE TABLE tab1 (colx INT); RETURN 1; END FUNCTION;
如果用户 joan 现在执行 func1 函数,用户 mike 而非用户 joan 是新建的表 tab1 的所有者。
然而,在 DBA 特权 UDR 的情况中,除非在此 UDR 中的数据库对象被指定给其它所有者,否则执行 UDR 的用户(而非 UDR 的所有者)拥有此 UDR 创建的任何数据库对象。
CREATE DBA FUNCTION func2 () RETURNING INT; CREATE TABLE tab2 (coly INT); RETURN 1; END FUNCTION;
如果用户 joan 现在执行 func2 函数,用户 joan 而非用户 mike 是新建的表 tab2 的所有者。
另见 对用户身份和角色的支持 一节。