在用户名'MY_ADMIN'下,我成功创建了一个名为'NOTIFICATIONS'的表和一个名为'V_NOTIFICATIONS'的视图.在'V_NOTIFICATIONS'视图中,我已成功创建了一个触发器和一个包,该包接受用户尝试插入视图并将其插入表中的内容.当用户尝试在视图上执行更新和删除功能时,"V_NOTIFICATIONS"触发器和包还会在表上执行更新和删除功能.
我在目前正在处理的项目中已经完成了许多视图,因为许多视图位于许多不同表的顶部,但是当尝试在此视图中插入记录时,我收到"ORA-01031:权限不足"错误.
我可以使用包中的相同代码直接插入表中,但不能直接插入到视图中.任何有关这方面的帮助将不胜感激.这是请求的代码:
视图:(当下面的UNION被注释掉时,包按预期运行)
CREATE OR REPLACE FORCE VIEW "MY_ADMIN"."V_NOTIFICATIONS" AS
SELECT N_ID,
NOTIFICATION_TYPE,
CASE WHEN NOTIFICATION_DESC = 'C' THEN 'Copy' ELSE 'Send to' END NOTIFICATION_DESC,
CASE WHEN CONTACT_TYPE = 'D' THEN 'Department' ELSE 'Contact' END CONTACT_TYPE,
A.AU_USER_ID,
A.CONTACT_NAME,
D.DEPARTMENT_ID,
D.DEPT_DESC
FROM NOTIFICATIONS AN,
(SELECT A1.AU_USER_ID,
AU.FIRST_NAME || ' ' || AU.LAST_NAME CONTACT_NAME
FROM APP_USERS_CONTACT_INFO A1,
APPLICATION_USERS AU
WHERE A1.AU_USER_ID = AU.USER_ID
/*UNION
SELECT 0,
NULL
FROM DUAL*/) A,
(SELECT DEPARTMENT_ID,
DESCRIPTION DEPT_DESC
FROM DEPARTMENTS
UNION
SELECT 0 DEPARTMENT_ID,
NULL …Run Code Online (Sandbox Code Playgroud) 所以我需要从Employee表(idEmployee,name等)到创建帐户的真实用户进行映射.我决定添加一个表Mapping_Employee_User(idEmployee,userName),如下所示
CREATE TABLE Mapping_Employee_User(
idEmployee NUMBER(6)
CONSTRAINT FK_Mapping_Employee_User1 REFERENCES Employee (idEmployee),
userName VARCHAR2(30 BYTE)
CONSTRAINT FK_Mapping_Employee_User2 REFERENCES ALL_USERS(USERNAME),
CONSTRAINT PK_Mapping_Employee_User PRIMARY KEY (idEmployee, userName)
);
Run Code Online (Sandbox Code Playgroud)
但我得到" ORA01031权限不足原因:试图更改当前的用户名或密码..."但我实际上并没有这样做,我只是想做一个参考.
注意:我对此用户拥有完整的权利
记录为SYS我可以看到实际的表名为"USER $",我找不到表ALL_USERS ...无论如何我怎么做这种引用?
数据库中有一个用户,授予CREATE PROCEDURE privelege.但是当该用户尝试创建一个简单的过程时,将引发以下错误:ORA-01031:权限不足01031. 00000 - "权限不足"*原因:尝试在没有相应权限的情况下更改当前用户名或密码.如果尝试安装没有必要的操作系统权限的数据库,也会发生此错误.
这是程序的DDL:
CREATE OR REPLACE PROCEDURE TOTALBASE.ROUNDUP
(CUR OUT SYS_REFCURSOR )
AS
BEGIN
OPEN CUR FOR
SELECT * FROM TOTALBASE.ABONENT;
END ROUNDUP;
Run Code Online (Sandbox Code Playgroud)
我还应该考虑做些什么呢?我怀疑,即使授予了privelege不在管理员或ORA_DBA组中的任何人也无法创建过程.但我不确定.
ora-01031 ×4
oracle ×4
create-table ×1
foreign-keys ×1
insert ×1
package ×1
privileges ×1
triggers ×1