科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件PB应用的数据库联接的安全防范

PB应用的数据库联接的安全防范

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文介绍了解决数据库应用的安全性问题,通过INI文件和数据库的巧妙处理,在程序中提供用户一种接口,可以随时修改数据库的联接参数扩充性的方法。

作者:51cto.com整理 来源:51cto.com  2007年9月15日

关键字: 软件

  • 评论
  • 分享微博
  • 分享邮件

3、接下来,就是编写一个用户接口,让授权用户随时修改数据库联接参数。窗口界面见下图:(文件名称:dblogon.jpg),窗口上面的控件有:

控件名称 控件属性

sle_server SingleLineEdit

sle_login SingleLineEdit

sle_oldkl SingleLineEdit

sle_pass SingleLineEdit

sle_repass SingleLineEdit

cb_1 commandbutton

cb_2 commandbutton

cb_1命令按钮的clicked事件如下:

string ls_inifile,ls_pass,ls_logid,ls_repass,ls_old

string ls_k,ls_user,ls_sql

ls_inifile ='rsgl.ini'

transaction pub_tr

pub_tr = create transaction

pub_tr.DBMS = ProfileString (ls_inifile, "database", "dbms", "")

pub_tr.LogPass = 'pub'

pub_tr.ServerName = sle_server.text

pub_tr.LogId = "pub"

pub_tr.AutoCommit = False

pub_tr.DBParm = ""

connect using pub_tr;

ls_old = sle_oldkl.text

ls_user = lower(trim(sle_logid.text))

//得到数据库联接原用户口令

select passshadow into :ls_k from tbl_pub_passshadow using pub_tr;

if ls_old <> f_password(ls_k,0) then

messagebox("提示","原口令不对!")

return

end if

//检查核对口令

ls_pass = sle_pass.text

ls_repass = sle_repass.text

if ls_repass <> ls_pass then

messagebox("","核对口令不对,请重新输入!")

return

end if

SetProfileString(ls_inifile, "Database", "Servername",sle_server.text)

SetProfileString(ls_inifile, "Database", "Logid",ls_user)

//修改数据库用户的联接口令

ls_sql = ' alter user '+ls_user+' identified by '+ls_pass

Execute Immediate :ls_sql using sqlca;

ls_pass = f_password(ls_pass,1)

UPDATE TBL_PUB_PASSSHADOW SET PASSSHADOW =:ls_pass using pub_tr ;

commit using pub_tr;

commit using sqlca;

disconnect using pub_tr;

close(parent)

cb_2命令按钮的clicked事件如下:close(parent)

4、到此万事OK

所有代码已在Win98环境下,用PowerBuilder 6.5测试通过。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章