Oracle:限制用户访问rowdata=user的行
还有别的办法吗?我想将用户限制为他自己的模块和相关结果。第一个意图是创建一个视图,因为这样就可以将WHERE子句与用户结合使用,从而为我提供连接用户的用户名Oracle:限制用户访问rowdata=user的行,oracle,user-permissions,Oracle,User Permissions,还有别的办法吗?我想将用户限制为他自己的模块和相关结果。第一个意图是创建一个视图,因为这样就可以将WHERE子句与用户结合使用,从而为我提供连接用户的用户名 CREATE OR REPLACE FORCE VIEW "ADMIN_STUDENT"."MODULE_LEADER" ("MCODE", "MLECTURER") AS SELECT "MCODE", "MLECTURER" FROM MODULE WHERE MLECTURER = USER; 或者,在视图定
CREATE OR REPLACE FORCE VIEW "ADMIN_STUDENT"."MODULE_LEADER" ("MCODE", "MLECTURER")
AS
SELECT "MCODE",
"MLECTURER"
FROM MODULE
WHERE MLECTURER = USER;
或者,在视图定义中添加use
SYS\u上下文('USERENV','SESSION\u USER')
。或者,添加useSYS\u上下文('USERENV','SESSION\u USER'))
在视图定义中。为什么该视图会提供您想要的输出?因为我可以将mlecuturer的行数据与当前连接的用户进行比较。用户应该只看到表中的“他的”数据。编辑:这些可以通过OEM作为用户管理的一部分实现吗?为什么该视图提供您想要的输出?因为我可以将MLECUTURER的行数据与当前连接的用户进行比较。用户应该只看到表中的“他的”数据。编辑:这些可以通过OEM作为用户管理的一部分实现吗?+1这是一个有效的替代方案,但我会尽可能避免VPD。当您向Oracle请求查询X时,它会秘密地将您的查询替换为Y+1,这是一个有效的替代方案,但我会尽可能避免VPD。当您向Oracle请求查询X时,它会秘密地用Y替换您的查询,这是非常令人沮丧的。