`

实现ORACLE如何去除某些用户的DROP权限!

阅读更多

有时在进行项目开发过程中,由于一些误操作会导致数据库的表给误删除掉,为了避免这一情况的发生,如何严格控制某用户不能对自己的库进行DROP权限,需要进行相关设置,由于默认connect的权限也是具有drop自己用户的表结构,通过product_user_profile只能限制sql*plus的操作,而不能限制其它第三方oracle连接工具,最有效的方法就是通过在system用户下建立触发器来限制。

具体如下:

这个trigger建到了system用户下,TEMP几个用户都无法Dop自己的对象,你可以参照进行修改。

CREATE OR REPLACE TRIGGER "TRG_DENY_DROP_UBISP" BEFORE
DROP ON DATABASE
BEGIN
IF (ORA_DICT_OBJ_OWNER='TEMP_ODS' OR
ORA_DICT_OBJ_OWNER='TEMP_MID' OR
ORA_DICT_OBJ_OWNER='TEMP_DW' OR
ORA_DICT_OBJ_OWNER='TEMP_REPORT' OR
ORA_DICT_OBJ_OWNER='TEMP_WEB' OR
ORA_DICT_OBJ_OWNER='TEMP_REPORT_NEW')
AND ORA_LOGIN_USER<>'TEMP_ADMIN'---排除的用户
AND ORA_DICT_OBJ_TYPE='TABLE' AND ORA_DICT_OBJ_NAME NOT LIKE '%OLD' THEN--可以让被限制的用户删除的表
RAISE_APPLICATION_ERROR(-20010,'你不能创建/删除TEMP_%用户下的任何表.');
END IF;
END TRG_DENY_DROP_UBISP;

注:如果要对当前用户限制所有对象的DROP操作,可将触发器中的ORA_DICT_OBJ_TYPE和ORA_DICT_OBJ_NAME的属性去掉即可。

分享到:
评论

相关推荐

    oracle实验报告

    4、 以bs123456(bs学号)用户登录orcl数据库,利用PL/SQL编写程序实现下列功能模块。 1)、创建一个函数,以客户号微参数,返回该客户订购图书的价格总额。 2)、创建一个函数,以订单号为参数,返回该订单购图书的...

    oracle数据库经典题目

    系统权限提供了在Oracle数据库系统范围内执行某种任务的操作能力,而对象权限则是一种赋予用户在指定的数据库对象(如表、视图、过程等) 16. Oralce数据库在进行物理备份有联机备份和脱机备份两种方式可供选择。 ...

    Oracle中创建和管理表详解

    SQL&gt; /*SQL&gt; 对于表的操作: 创建表,修改表(添加新的列,改变当前某些列,删除列),删除表SQL&gt; 创建表: create table(需要create table的权限)SQL&gt; 修改表: alter table tablename add/modify/dropSQL&gt; 删除表:drop ...

    SQL培训第一期

    用于控制对数据库里数据的访问,通常用于创建与用户访问相关的对象以及控制用户的权限,grant、revoke(撤销)。 1.2.5 事务控制命令(TPL) 用于管理数据库事务,commit、rollback、savepoint(在一组事务里创建...

    Toad 使用快速入门

    可以修改表的各种逻辑和物理属性,修改列的属性,增加列,删除列(在Oracle8i里面),修改表的物理存储属性,Truncate,Drop等。 iii. 可以生成建表的完整的DDl语句,包括存储信息,权限信息,约束,索引和触发器等,...

    经典SQL语句大全

    4、转移数据库给新用户以已存在用户权限 exec sp_change_users_login 'update_one','newname','oldname' go 5、检查备份集 RESTORE VERIFYONLY from disk='E:\dvbbs.bak' 6、修复数据库 ALTER DATABASE [dvbbs] SET ...

    数据库操作语句大全(sql)

    4、转移数据库给新用户以已存在用户权限 exec sp_change_users_login 'update_one','newname','oldname' go 5、检查备份集 RESTORE VERIFYONLY from disk='E:\dvbbs.bak' 6、修复数据库 ALTER DATABASE [dvbbs] ...

    sql经典语句一部分

    4、转移数据库给新用户以已存在用户权限 exec sp_change_users_login 'update_one','newname','oldname' go 5、检查备份集 RESTORE VERIFYONLY from disk='E:\dvbbs.bak' 6、修复数据库 ALTER DATABASE [dvbbs] SET ...

    2009达内SQL学习笔记

    大多数SQL实现支持以下类型的函数: 文本处理, 算术运算, 日期和时间, 数值处理。 Null:空值 空值当成无穷大处理,所有空值参与的运算皆为空。 空值与空值并不相等,因为空值不能直接运算。 如:prod_price...

Global site tag (gtag.js) - Google Analytics