【发布时间】:2021-04-02 05:17:01
【问题描述】:
我创建了一个如下所示的过程。此过程存在于schema1 中,并尝试修改另一个架构/用户的密码,比如schema2。
要实现这一点,用户schema1 必须具有更改的用户权限,但由于应用程序级别的一些限制,我无法将alter user 权限提供给schema1。
我尝试在过程中使用ALTER SESSION 进行查询,但它不起作用。
有人可以帮我解决吗?
代码:
Procedure p_demo(p_schema in varchar, p_pswd in varchar2)
is
begin
execute immediate 'alter session set current_schema ='||p_schema;
execute immediate 'alter user '||p_schema||' identified by '||p_pswd;
end;
【问题讨论】:
-
您的意思是要防止用户更改自己的密码?
-
你能做到
grant alter user to schema2吗?如果“是”,请记住,用户也可以直接在 SQL*Plus 或类似工具中修改密码,他也可以更改其他用户属性,例如轮廓。如果“否”,那么这将很困难,因为schema1和schema2都不需要alter user权限。
标签: oracle privileges