- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
识别错误身份证代码的
计算机审计方法
一、方法代码
GCA/0002
二、方法名称
识别错误身份证代码的计算机审计方法
三、目标功能
审计目标:验证身份信息的存在性、唯一性、合理性、规范性,有助于审计人员从总体上把握人员信息,整体上评判一个数据库系统开发的好坏。
审计功能:通过对身份证号码的检查,发现一些有价值的问题线索,实现审计目标,发挥审计的监督作用。
四、所需数据
所需数据资料如下表所示:
序号 数据资料名称 结构化 非结构化 半结构化 1 人员信息表 √ 其中:
基础表:人员信息表
数据元素:姓名、性别、身份证号码
五、分析步骤
(一)、验证身份证号码长度的合理性。根据我国身份证号码的编码规则,长度不为15位或18位的均视为不合理。
类SQL语句:Select b.* From [人员信息表] b Where (Len(b.身份证号) Not In (15,18) And b.身份证号 Is Not Null ) Or b.身份证号 is Null
(二)、验证身份证号码是否存在无效字符。在身份证号码的录入时,有的时候即使长度是15位或18位,但由于身份证号码中包含其他字符,如*,#,¥,%等,均视为身份证号码存在无效字符。做法上,如果身份证号码为15位,则取全部的15位;如果身份证号码为18位,则取前面17位,把结果先存于中间表中,再进行查询。
类SQL语句:select [姓名],[性别],iif(Len(b.身份证号)=18,mid(b.身份证号,1,17),b.身份证号) as 身份证号 into 中间表 From [人员信息表] b Where Len(b.身份证号) In (15,18)
Select * From [中间表] Where Isnumeric([身份证号]) = 0
case when len(b,,,)=18 then substring(,,,,1,17) else b.xxx end
(三)、验证身份证号码中包含的出生日期信息是否不符常理。在身份证号码的录入时,有的时候即使长度是15位或18位,但如果存在如1985-2-30等出生日期信息,均视为身份证号码不符常理。做法上,先提取出出生的年月日,把结果先存于中间表中,再进行查询。
类SQL语句:select [姓名],[性别],[身份证号],iif(Len(b.身份证号)=15,19+mid(b.身份证号,7,2)+-+mid(b.身份证号,9,2)+-+mid(b.身份证号,11,2) ,mid(b.身份证号,7,4)+-+mid(b.身份证号,11,2)+-+mid(b.身份证号,13,2)) as 出生日期 into 中间表1 From [人员信息表] b Where Len(b.身份证号) In (15,18)
Select [中间表1].* From [中间表1] where ISDATE([出生日期])=0 or not([出生日期] Between 1900-01-01 And 2010-06-30)
四、验证身份证号码中包含的性别信息是否与字段性别的信息相吻合。
类SQL语句:Select * From [人员信息表] b Where Len(b.身份证号) In (15,18) and 性别=男 and iif(Len(b.身份证号)=15,mid(b.身份证号,15,1),mid(b.身份证号,17,1)) IN(0,2,4,6,8) or Len(b.身份证号) In (15,18) and 性别=女 and iif(Len(b.身份证号)=15,mid(b.身份证号,15,1),mid(b.身份证号,17,1)) IN(1,3,5,7,9)
六、流程图
七、方法语言
(一)验证身份证号码长度的合理性。
Var SqlStr, CurQuery, IsEmpty;
Begin
//Sql语句赋值给变量
SqlStr:= Select b.* From [人员信息表] b Where (Len(b.身份证号) Not In (15,18) And b.身份证号 Is Not Null ) Or b.身份证号 is Null ;
//执行查询SQL,查找身份证号码长度不合理的情况
CurQuery:=CreateQ(SqlStr,-1);
//查询结果集是否为空
IsEmpty:=QEof(CurQuery);
if IsEmpty#1 then
begin
//循环将查询结果放入业务疑点临时库
repeat
AddTransRslt(CurQuery,身份证号码长度不合理 查询
文档评论(0)