Oracle
Oracle 12c - 嘗試使用 SYS 使用者創建觸發器時權限不足
我想為 CRE 模式創建一個觸發器。我正在嘗試使用 SYS 使用者創建此觸發器,但權限不足錯誤。
我的觸發器:
CREATE OR REPLACE TRIGGER CRE.TRIGGER_NAME AFTER LOGON ON DATABASE DECLARE asd1 NUMBER; asd2 NUMBER; asd3 NUMBER; asd4 NUMBER; asd NUMBER; qwe VARCHAR2(200); qaz VARCHAR2(200); ewq NUMBER; zaq VARCHAR2(50); xsw VARCHAR2(50); BEGIN CRE.SOME_PROCEDURE_NAME('S', SYSDATE); END; /
SYS使用者怎麼可能?
我該如何解決?
最好的祝福。
即使您將觸發器創建為
SYS
,所有者也必須具有以下CREATE TRIGGER
權限:
GRANT CREATE TRIGGER TO CRE;
除了上述之外,要創建
AFTER LOGON ON DATABASE
觸發器,ADMINISTER DATABASE TRIGGER
還需要權限:
GRANT ADMINISTER DATABASE TRIGGER TO CRE;
CRE帳戶可以執行“SOME_PROCEDURE_NAME”程序嗎?
您正在創建一個由使用者 CRE 擁有的觸發器,預設情況下,它將使用DEFINER Rights創建。
您想要在該觸發器中執行的任何操作都必須由 CRE 使用者本身“可能”執行,並且任何此類權限都必須直接授予使用者。它無法通過角色的應用獲得這些權限(因為該帳戶獨立於它可能授予或可能不授予它的任何角色而存在)。