对ORACLE数据库权限,对操作Oracle数据库的用户进行安全权限控制

该篇技术文章介绍了如何通过数据库级别的触发器限制非sys、system用户的alter、drop、truncate权限,防止对数据的破坏性操作。同时,调整了tssa用户权限,仅保留connect权限,以及创建了一个只读用户bzwh,授予其查询权限,确保数据安全。这些措施旨在加强数据库的安全性和用户管理。
摘要由CSDN通过智能技术生成

一、采用数据库级别触发器控制非sys、system的alter\drop\truncate权限 --控制alter操作 CREATE OR REPLACE TRIGGER SYS.TRIGGE

一、采用数据库级别触发器控制非sys、system的alter\drop\truncate权限

--控制alter操作

CREATE OR REPLACE TRIGGER SYS.TRIGGER_ALTER

BEFORE ALTER

ON DATABASE

begin

if ora_login_user not in ('SYS','SYSTEM') THEN

Raise_application_error (-20001,'Please not do ALTER!');

end if;

end;

/

--控制drop操作

CREATE OR REPLACE TRIGGER SYS.TRIGGER_DROP

BEFORE DROP

ON DATABASE

begin

if ora_login_user not in ('SYS','SYSTEM') THEN

Raise_application_error (-20001,'Please not do DROP!');

end if;

end;

/

--控制truncate操作

CREATE OR REPLACE TRIGGER SYS.TRIGGER_truncate

BEFORE truncate

ON DATABASE

begin

if ora_login_user not in ('SYS','SYSTEM') THEN

Raise_application_error (-20001,'Please not do TRUNCATE!');

end if;

end;

/

经过测试,一般用户进入数据库后无法进行alter、drop、truncate的操作

限制了对数据的破坏性操作,若进行上述操作,系统会产生

ORA-00604: error occurred at recursive SQL level 1

ORA-20001: Please do not DROP!

之类错误

PS:未限制create操作,因为1、create操作不会对生产数据产生破坏性影响;

2、若限制create操作,,可能会导致create index的操作失败

======================================================

二、调整tssa用户权限

REVOKE "DBA" FROM "TSSA";

GRANT "CONNECT" TO "TSSA";

将dba权限从tssa用户移除,并重新对其赋予connect权限

经过业务测试,未发现引起业务异常

=======================================================

三、创建只读用户bzwh

CREATE USER "BZWH" PROFILE "DEFAULT"

IDENTIFIED BY "bzwh" DEFAULT TABLESPACE "USERS"

ACCOUNT UNLOCK;

GRANT CREATE SESSION TO "BZWH"

GRANT SELECT ANY DICTIONARY TO "BZWH"

GRANT SELECT ANY SEQUENCE TO "BZWH"

GRANT SELECT ANY TABLE TO "BZWH"

logo.gif 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值