栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

ORACLE PLSQL创建用户,触发器由:new用户名和密码标识

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ORACLE PLSQL创建用户,触发器由:new用户名和密码标识

我在这里看到的主要问题是授予

create user
。您可能不希望您的架构能够创建用户。因此,触发器(当然是其他答案指出需要这样做
executeimmediate
)不应直接调用create user。我将创建在您的工作模式以外的其他模式中创建用户的过程。该外部模式将授予
createuser
您的权限,而您的模式将仅授予从强特权模式执行该过程的权限。在这种情况下,触发器将仅从外部模式调用单个过程。

因此,回顾一下:

 CREATE OR REPLACE TRIGGER your_schema.NEW_USER AFTER INSERT ON ACCOUNT FOR EACH ROW BEGIN   STRONG.CREATE_USER(:NEW.PASSWORD,:NEW.USERNAME); END;CREATE OR REPLACE PROCEDURE STRONG.CREATE_USER(PASS VARCHAR2, USERNAME VARCHAR2) ASDECLARE      PRAGMA AUTONOMOUS_TRANSACTION;BEGIN  execute immediate 'CREATE USER ' || USERNAME || ' IDENTIFIED BY ' || PASS;  execute immediate 'GRANT ROLE_NAME, CONNECT, RESOURCE TO ' || USERNAME; --and whatever user needs moreEND;

STRONG用户有权创建用户,而your_schema有权执行

STRONG.CREATE_USER

额外的东西。切勿以纯文本形式存储密码。使用一些哈希。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410947.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号