• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    一種簡便有效的數據庫安全法

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 25次 | 進入軟件測試論壇討論

    領測軟件測試網 福建師范大學經濟研究所 倪秉書

    ---- 在編寫VB應用程序時,經常要用到它強大的數據庫功能,VB數據庫與ACCESS都為同一關系模型數據庫,兩者完全兼容,默認庫文件名為.MDB。一些用VB編寫的數據庫應用軟件要求具有很高的數據保密性,我們一般在啟動軟件時要求輸入相應的用戶名及口令來確保數據的安全,但是軟件所附帶的大量.MDB數據庫文件,非法人員卻可以通過一些軟件比如ACCESS方便地打開并查閱其中的敏感數據,有可能造成嚴重的瀉密,如果是存放軟件的用戶名、權限、密碼等信息,則更是如此。一般的做法是,先把數據庫文件通過某種算法加密,然后在運行程序時解開,在程序退出時再把文件加密,這種作法不僅費時費力,而且一旦處理不當還有可以造成文件損壞,數據永久性丟失。而ACCESS中提供了一種數據庫安全機制,就是在打開數據庫前可以要求使用者輸入密碼,微軟提供的這種安全機制可以滿足大部份用戶的數據安全要求,是比較有效的,而在VB中的Opendatabase方法可以利用編程者在程序中預設的密碼打開被設密的庫文件,這樣用VB編寫的程序經過編譯之后,密碼就被隱含在程序中,軟件在要使用到庫文件時,利用隱含在程序中的密碼打開庫文件,存取數據,而無關人員則無法打開軟件隨帶的被預設了密碼的數據庫文件,使庫文件中的數據得到了良好保護。以下就以ACCESS97和VB5為例說明處理的過程:

    ---- 首先,在ACCESS中以“獨占”方式打開一個數據庫文件(在打開窗口中選擇“獨占”框),然后選擇“工具”菜單的“安全”項中的“設置數據庫密碼”,輸入密碼,確定,存盤退出。接著在VB程序中通過OpenDatabase方法來操作被加密的庫文件,因為該方法涉及到數據訪問對象(DAO),因此在使用前必須先引用,然后才能使用,方法是:在VB5中打開“工程”菜單,選“引用”項,在打開的“引用窗口”中選擇“Microsoft DAO 3.5 Object Library”,確定,退出。為了方便,本例僅舉一個簡單的例子,在具體的應用中可結合需要對被打開的庫文件進行各種其他的操作:新建一個工程,在窗體上放置一個命令控件,運行該程序后,按下命令按鈕,則自動打開一個已設密碼的數據庫文件,為了說明文件確實已正確的被打開,本例在“立即”窗口中把所打開的文件中的所有表的名稱都顯示出來(當然,數據庫本身專用的一些以MSYS等開頭的系統表的表名因為未經處理也被顯示),在編程之前,先介紹一下Opendatabase方法的語法:

    Set dbdatabase=workspace.OpenDatabase
    (dbname,options,read-only,connect)

    ---- 各部分說明如下:
    ---- dbdatabase:一個對象型變量,用來表示你所要打開的數據庫對象;

    ---- workspace:可選項,一個表示已存在的workspace型對象的對象型變量,如果不指明該變量,OpenDatabase將使用默認的workspace;

    ---- dbname:一個存在的VB可訪問的數據庫文件名,當然,也可以是一個開放數據庫連接(ODBC)的數據源名(DSN);

    ---- options:可選項,一般是一個用來設置數據庫的各種選項的一個變體型變量,如果設True表明以獨占方式打開,False(默認)表明以共享方式打開;

    ---- read-only:可選項,一個布爾值,True表明數據庫以只讀方式打開,False(默認),表明以讀/寫方式打開。

    ---- Connect:可選項(但在本例中是重點),一個字符串變體,用來指定各種數據庫連接信息,如數據庫文件類型和密碼信息。

    ---- 現在可以在命令控件的Click事件中加入橫線后的代碼了:

    Option Explicit
    Dim dbworkspace As Workspace
    Dim dbdatabase As Database
    Dim dbtable As TableDef        
    注釋:以上為各對象變量的定義說明部分
    ---------------------------------
    Private Sub Command1_Click()
      On Error GoTo vberror
      Set dbworkspace = DBEngine.Workspaces(0)
      Set dbdatabase = dbworkspace.OpenDatabase
    ("c:\phone.mdb", True, True, ";pwd=lnlnlln")

    ---- 注:打開c:\下的一個名為phone.mdb的已設密碼的數據庫文件,最后一個用引號引起來的參數包括數據庫類型和數據庫密碼,兩者之間必須用分號分隔,本處因為使用的是.MDB標準庫,所以可不必寫類型,但“;“不可省,等號后為密碼(本處作者把Phone.mdb的密碼設為lnlnlln,注意密碼要嚴格區分大小寫)
      For Each dbtable In dbdatabase.TableDefs
          Debug.Print dbtable.Name  
        注釋:在‘立即’窗口中顯示表名
      Next
    vberror:
      MsgBox Err.Description
    End Sub


    ---- 現在,數據庫已被加上了一把"鎖",除了擁有密碼的使用者或應用程序以外,沒人會打得開你的數據庫文件了,但細心的人也許會發現,現在雖然沒有密碼就不能用數據庫管理系統來打開數據文件,但如果有人用記事本或寫字板等一類字編輯軟件強行打開一個被加鎖的數據庫,雖然他不能看到完整的數據,但還可以隱約地窺視到一些斷斷續續的信息,這時我們可以再次地利用ACCESS的另一種防止用其他軟件查閱數據庫的加密功能:在ACCESS中打開PHONE.MDB數據庫,在"工具"菜單中找到"安全"選項中的"加密/解密數據庫".至此,你就可以不用為你的數據安全而整日操心了.  

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>