请问如何用oracle触发器实现不允许新增/删除表/增加/减少/修改字段类型

请问如何用oracle触发器实现不允许新增/删除表/增加/减少/修改字段类型

给本帖投票

56211打赏收藏

 分享

 转发到动态举报

 写回复

性能测试中发现oracle11g数据库每天22点,oralce进程CPU占用率突增>>

11 条回复

 切换为时间正序

请发表友善的回复…

发表回复

microsoft_fly 2008-11-18

还是用权限控制比较好,触发器影响数据库性能,越复杂对性能影响越大

fuxiaoyang13 2008-11-18

路过!

hongqi162 2008-11-17

楼主说的似乎不是处理表数据,而是处理建表,删除/修改表结构的操作,还是通过权限控制比较好

wfqqwer5213 2008-11-17

CREATE OR REPLACE TRIGGER ddl_trigger
BEFORE CREATE OR ALTER OR DROP
ON SCHEMA

DECLARE
oper ddl_log.operation%TYPE;
sql_text ora_name_list_t;
i PLS_INTEGER;
BEGIN
SELECT ora_sysevent
INTO oper
FROM dual;

i := sql_txt(sql_text);

IF oper IN ('CREATE', 'DROP') THEN
INSERT INTO ddl_log
SELECT ora_sysevent, ora_dict_obj_owner,
ora_dict_obj_name, sql_text(1), USER, SYSDATE
FROM dual;
ELSIF oper = 'ALTER' THEN
INSERT INTO ddl_log
SELECT ora_sysevent, ora_dict_obj_owner,
ora_dict_obj_name, sql_text(1), USER, SYSDATE
FROM sys.gv_$sqltext
WHERE UPPER(sql_text) LIKE 'ALTER%'
AND UPPER(sql_text) LIKE '%NEW_TABLE%';
END IF;
END ddl_trigger;
/

wfqqwer5213 2008-11-17

DDL Trigger - Triggering Operations
BEFORE / AFTER ALTER
BEFORE / AFTER ANALYZE
BEFORE / AFTER ASSOCIATE STATISTICS
BEFORE / AFTER AUDIT
BEFORE / AFTER COMMENT
BEFORE / AFTER CREATE
BEFORE / AFTER DDL
BEFORE / AFTER DISASSOCIATE STATISTICS
BEFORE / AFTER DROP
BEFORE / AFTER GRANT
BEFORE / AFTER NOAUDIT
BEFORE / AFTER RENAME
BEFORE / AFTER REVOKE
BEFORE / AFTER TRUNCATE
AFTER SUSPEND

范佩西_11 2008-11-17

这可以用权限控制吗。只给select权限就可以了
如果实在要用触发器,给你个限制增删改的例子:

 
  1. create or replace trigger tr before insert or update or delete on act

  2. begin

  3. if updating or deleting or inserting

  4. then

  5. raise_application_error(-20001,'不允许增删改');

  6. end if;

  7. end;

sleepzzzzz 2008-11-17

 
  1. -- 试下

  2. Create table test(a number);

  3. Create trigger tri_test

  4. Before insert or update or delete

  5. On foo

  6. Begin

  7. Raise_application_error(-20001, 'You don’t have access to modify this table.');

  8. End;

  9. /

sleepzzzzz 2008-11-17

好奇怪的需求

wfqqwer5213 2008-11-17

CREATE OR REPLACE TRIGGER trg_drop_table
BEFORE DROP ON DATABASE
BEGIN
raise_application_error(num => -20000,
msg => '主机:' ||
SYS_CONTEXT('USERENV', 'HOST') ||
chr(13) || 'IP:' ||
SYS_CONTEXT('USERENV', 'IP_ADDRESS') ||
'试图删除' || ora_dict_obj_name() || '表');


END;


一个禁止drop的例子

hongqi162 2008-11-17

用权限控制一下不就可以了么,这些操作和触发器没有什么关系

BlueskyWide 2008-11-17

 回复

不允许新增/删除表
===============
界面层封住,Oracle用户名和密码不对外提供即可。


增加/减少/修改字段类型
====================
使用alter table add ...
alter table drop ...
修改字段可以使用先增加字段,然后删除来做。


如果Oracle用户名和密码别人知道了,只能通过职业道德来规范了。



[Quote=引用楼主 anning241 的帖子:]
急:
请问如何用oracle触发器实现不允许新增/删除表/增加/减少/修改字段类型
[/Quote]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/29183.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 第三讲

1 >手动封装一个顺序栈类(数据元素为整形),要求私有成员属性:堆区空间的指针,用于存放数据,和一个指向栈顶元素的变量 main.cpp #include "zuoye.h"int main() {//实例化对象My_stack Stck;My_stack &st Stck;//入栈Stck…

数字图像学笔记 —— 19.肤色检测

文章目录 什么是肤色检测需要使用OpenCV函数颜色空间转换颜色范围位运算 什么是肤色检测 在没有AI之前,肤色检测是计算机视觉的一项常见任务。其根本思路是划定一个颜色区域,只要属于该颜色区域的像素就认为属于肤色。但是这种方法的精确度不高&#xf…

ubuntu中下载、构建、使用raylib

目录 先决条件 [1]下载raylib方式一方式二 构建 [1]使用终端中使用Clion中使用 先决条件 [1] ubuntu系统上需要先安装GCC, make(或者cmake)和git (下载raylib) 执行下面的命令可以安装GCC,make,cmake,git sudo apt install build-essential git #build-essential是一套工具集…

leetcode 445. Add Two Numbers II(两数相加)

用链表代表2个数字,这2个数字相加的和用链表返回。 最高位在链表的head. 思路: 1.链表逆序 数字相加是从低位到高位的,然而链表中的数字是从高位指向低位。 所以涉及到链表的逆序。 逆序之后只需从head到tail把两个链表的数字相加&#x…

Windows安装激活注意事项

选择语言、版本(Windows 10指的是专业版本)和体系结构(32位/64位),这里自行根据情况选择(如果机器预装的是Windows 10家庭中文版则选择家庭中文版,如果预装的是专业版则选择Windows 10。这样原先…

使用IDEA构建jar然后转执行程序exe的爬坑

https://download.csdn.net/download/leoysq/87939492 构建jar

划片机的作用将晶圆分割成独立的芯片

划片机是将晶圆分割成独立芯片的关键设备之一。在半导体制造过程中,晶圆划片机用于将整个晶圆切割成单个的芯片,这个过程被称为“晶圆分割”或“晶圆切割”。 晶圆划片机通常采用精密的机械传动系统、高精度的切割刀具和先进的控制系统,以确保…

018 - STM32学习笔记 - SPI读写FLASH(三)- 写入字符串、小数与整数

018 - STM32学习笔记 - SPI访问Flash(三)- 写入字符串、小数与整数 上节对Flash的跨页写入数据进行了完善,但是数据写入都是以Byte数组的方式进行写入,这节分别进行字符串的写入和小数整数的写入,本节内容对SPI的函数…

Storage、正则表达式

1 LocalStorage 2 SessionStorage 3 正则表达式的使用 4 正则表达式常见规则 5 正则练习-歌词解析 6 正则练习-日期格式化 Storage-Storage的基本操作 // storage基本使用// 1.token的操作let token localStorage.getItem("token")if (!token) {console.log(&q…

Spring的创建和使用

目录 Spring的创建1.创建一个普通的Maven项目2.添加spring框架支持3.添加启动类 存储Bean对象1. 创建Bean2.将Bean注册到容器当中 获取并使用Bean对象1.得到Spring上下文2. 获取指定Bean对象3. 使用Bean对象 总结 Spring 是⼀个包含了众多⼯具⽅法的 IoC 容器。那么它就具备以下…

CloudCompare——M3C2计算两点云之间的鲁棒距离

目录 1.概述2、计算原理3、操作流程 本文由CSDN点云侠原创,原文链接。爬虫网站请自重。 M3C2 (plugin) 1.概述 CloudCompare中的Plugins -> M3C2 Distance 功能是用来计算两组点云间的鲁棒距离的特别方法。从CloudCompare-2.9版开始,M3C2插件还包括…

隐私计算大会亮点前瞻:《隐私计算应用研究报告(2023年)》发布预告

7月26日,2023隐私计算大会将于青岛正式扬帆,本次大会将齐聚业内专家大咖共论行业最新进展,洞察未来发展趋势,共同推进隐私计算行业蓬勃发展。 本次大会将公开正式发布《隐私计算应用研究报告(2023)》、“隐…