oracle ORA-01031缺少使用同义词更新表的权限

jk9hmnmh  于 2023-11-17  发布在  Oracle
关注(0)|答案(1)|浏览(197)

我知道有几个这样的问题,但没有一个解决方案对我有帮助。
我有用户A和用户B。由于事物的结构,我有一个表 A.blacklist,我需要用户 B 访问。我已经创建了一个同义词,以便用户B可以调用“SELECT * FROM blacklist”,没有问题。
然而,我似乎缺少与用户B调用“UPDATE blacklist SET.”的权限。
当使用脚本设置数据库时,会创建一个名为Dev的角色,并为其分配各种权限(为了便于阅读,我将在下面列出这些权限),这些权限依次授予用户A,B,.

create user A identified by A default tablespace USERS temporary tablespace TEMP;
grant CONNECT, RESOURCE, Dev to A;
grant unlimited tablespace to A;

字符串
在此之后,还有另一组授予sys权限的赠款:

grant SELECT on SYS.V_$DATABASE to A;
grant SELECT on SYS.V_$PARAMETER to A;
grant EXECUTE on SYS.DBMS_CRYPTO to A;


(理想情况下)只授予用户B对A.blacklist的写访问权限的正确语法是什么?我是Oracle DB的新手,所以我不确定是否有不同的权限,因为我正在访问跨用户的表。
授予每个用户(A、B、.)的权限:

CREATE USER
CREATE TRIGGER
DEBUG CONNECT SESSION
CREATE SEQUENCE
SELECT ANY SEQUENCE
CREATE TABLE
SELECT ANY TABLE
CREATE ANY PROCEDURE
DROP PUBLIC SYNONYM
DROP USER
EXECUTE ANY
CREATE SYNONYM
CREATE VIEW
CREATE PUBLIC SYNONYM
CREATE ROLE
CREATE ANY TABLE
CREATE SESSION
CREATE MATERIALIZED VIEW
DEBUG ANY PROCEDURE
CREATE DATABASE LINK
ALTER SESSION

8tntrjer

8tntrjer1#

正如用户Paul W所回答的那样,解决方案是:

grant update on a.blacklist to B

字符串
这是太简单了,我猜,哈哈。

相关问题