用登录触发器强制检查Sybase客户端字符集
来源:互联网 发布:linux kvm使用 编辑:程序博客网 时间:2024/05/21 17:23
今天公司开发的某个软件升级,客户端字符集全部从cp850改为cp936。为避免未改字符集的用户误登录,我写了一个登录触发器,强行进行检查。一旦发现客户端程序使用的不是cp936,强行中止会话。
注意,登录错误信息,不会输出到客户端,而是记录在数据库系统日志中。
- /* 登录用户的缺省数据库,有时不一定是master库 */
- use master
- go
- /* 检查登录字符集的存储过程 */
- If Exists( Select 1 From sysobjects
- Where type = 'P' and name = 'sp_checklogin' )
- drop procedure sp_checklogin
- go
- create procedure sp_checklogin
- as
- begin
- declare @validcs varchar(100)
- declare @hostname varchar(30)
- declare @program_name varchar(30)
- declare @ipaddr varchar(64)
- select @validcs = 'cp936',
- @hostname = hostname,
- @program_name = program_name,
- @ipaddr = ipaddr
- from master..sysprocesses
- where spid = @@spid
- if @@client_csname <> @validcs
- begin
- print "Login error: your client charset is %1!, please set it to %2!." ,
- @@client_csname, @validcs
- print "--host name: %1!", @hostname
- print "--program name: %1!", @program_name
- print "--IP address: %1!", @ipaddr
- select syb_quit()
- end
- end
- go
- /* 设置TryUser用户登录触发器的例子 */
- sp_modifylogin TryUser, 'login script', sp_checklogin
- go
- 用登录触发器强制检查Sybase客户端字符集
- 怎样修改sybase客户端字符集
- sybase触发器
- Sybase触发器
- Sybase触发器
- Sybase IQ 在windows 环境下的客户端设置字符集
- Oracle数据库字符集和客户端字符集不同,强制转化可能会造成不可预期的后果
- Oracle数据库字符集和客户端字符集不同,强制转化可能会造成不可预期的后果
- Sybase ASE的字符集
- Sybase ASE的字符集
- Sybase IQ 数据库字符集
- 修改SYBASE的字符集
- Sybase 设置字符集
- Sybase字符集设置
- Sybase ASE的字符集
- Sybase字符集设置
- sybase字符集转换
- SYBASE字符集的配置
- DB2性能优化圣经——优化准则
- VS2003环境下使用gsl库,找不到libgsl.lib,libgslcblas.lib的问题
- 亲密接触Discuz!NT之架构篇
- vim命令总结
- 我校将创办阿里巴巴商学院
- 用登录触发器强制检查Sybase客户端字符集
- 网卡PXE启动设置
- AMT改善防护与远程支持
- 网站建设,网站推广,网站优化
- 对对号,你属于哪一族?
- JMX 介绍
- 阿里巴巴商学院
- Apache与tomcat详解
- 用DBMS_RANDOM生成文本和日期值