我试图创建一个像这样的简单函数,但它不起作用。返回数据,但与没有策略相同。
CREATE OR REPLACE FUNCTION test (schema in varchar2, tab in varchar2)
RETURN varchar2 AS
predicate varchar2(4000);
pre2 VARCHAR2(2000);
BEGIN
pre2 := sa_session.SA_USER_NAME('policy');
predicate := '"USER" = '''|| pre2 ||'''';
return (predicate);
END test;
/
我会将此函数与 VPD 策略一起使用,因此当用户从表中选择时,他们只能选择他们的行。