达梦原生没有支持这类参数,可以通过库级触发器实现类似效果。
如客户端有名称或者应用服务器IP固定,可以通过触发器逻辑判断。
例如
create or replace trigger "SYSDBA"."TRIGGER_LOGIN_MANAGER"
after LOGIN
on database
BEGIN
--判断当前连接是否为JDBC连接且JDBC版本是否为8.1.4.116版本,如有设置客户端名称,也可以查询APPNAME等方式来实现限制,当前如果判断JDBC连接的版本不是8.1.4.116会对会话进行CLOSE,生产环境上需确认触发器逻辑后再执行,建议在测试环境上完成相关逻辑验证工作,避免带来生产事故
IF ((select CLNT_TYPE from v$sessions WHERE SESS_ID=sys_context('USERENV', 'SID') and CLNT_VER!='8.1.4.116') ='JDBC') THEN
execute immediate 'sp_close_session('||(select sys_context('USERENV', 'SID'))||');';
END IF;
end
达梦原生没有支持这类参数,可以通过库级触发器实现类似效果。
如客户端有名称或者应用服务器IP固定,可以通过触发器逻辑判断。
例如
create or replace trigger "SYSDBA"."TRIGGER_LOGIN_MANAGER"
after LOGIN
on database
BEGIN
--判断当前连接是否为JDBC连接且JDBC版本是否为8.1.4.116版本,如有设置客户端名称,也可以查询APPNAME等方式来实现限制,当前如果判断JDBC连接的版本不是8.1.4.116会对会话进行CLOSE,生产环境上需确认触发器逻辑后再执行,建议在测试环境上完成相关逻辑验证工作,避免带来生产事故
IF ((select CLNT_TYPE from v$sessions WHERE SESS_ID=sys_context('USERENV', 'SID') and CLNT_VER!='8.1.4.116') ='JDBC') THEN
execute immediate 'sp_close_session('||(select sys_context('USERENV', 'SID'))||');';
END IF;
end