gpt4 book ai didi

oracle - 何时将 authID 称为 current_user

转载 作者:行者123 更新时间:2023-12-02 01:31:32 30 4
gpt4 key购买 nike

我主要是一个oracle新手,所以如果这是一个愚蠢的问题,请原谅我......

我已经阅读了很多关于 authID 的文章,我的理解是 AUTHID 子句指示 Oracle 是否以调用者的权限 (CURRENT_USER) 或所有者权限 (DEFINER) 运行例程。如果未指定该子句,Oracle 将默认使用 AUTHID DEFINER。

你能给我一个简单的例子来更好地理解 authID 吗?

最佳答案

这里的例子:

User1 有 DEPARTMENTS 表。

User2 也有 DEPARTMENTS 表。

如果我们在 User2 模式中创建此过程

    -- Connected as User2    
CREATE OR REPLACE PROCEDURE create_dept (

v_deptno NUMBER,
v_dname VARCHAR2,
v_mgr NUMBER,
v_loc NUMBER)
AUTHID CURRENT_USER AS
BEGIN
INSERT INTO departments VALUES (v_deptno, v_dname, v_mgr, v_loc);
END;
/

然后,如果我们从 User1 调用这个过程 - 在给予适当的权限之后,
-- Connected as User1
CALL create_dept(44, 'Information Technology', 200, 1700);

记录将插入:

User1.DEPARTMENTS

因为过程是作为当前用户执行的 - User1 调用者。

如果我们在创建过程时省略 AUTHID CURRENT_USER,则记录将像往常一样插入 User2.DEPARTMENTS...。

HTH

关于oracle - 何时将 authID 称为 current_user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33897519/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com