oracle可以通过创建trigger来对用户登陆做出限制,例子如下:
CREATE OR REPLACE TRIGGER tri_denylogin_db
AFTER LOGON ON DATABASE
DECLARE
osuser VARCHAR2(30);
ip VARCHAR2(30);
BEGIN
SELECT sys_context('userenv', 'IP_ADDRESS') INTO ip FROM dual;
IF ip NOT IN ('192.168.56.22') THEN
raise_application_error('-20001',
'You are not Authorized!');
END IF;
END tri_denylogin_db;
这样我们就可以限制主机IP不是192.168.56.22的所有用户登陆数据库。
注意:有DBA权限的用户不受该trigger的限制