WEB开发网
开发学院数据库Access 了解Microsoft Access安全性 阅读

了解Microsoft Access安全性

 2007-10-15 15:15:06 来源:WEB开发网   
核心提示:通过编程设置数据库密码按以下语法使用关键字 ALTER DATABASE,您可以编程设置、修改或删除数据库密码,了解Microsoft Access安全性(3),ALTER DATABASE PASSWORD NewPassword OldPassword在这个语句中,密码由方括号 ([]) 分隔的 String 值表

通过编程设置数据库密码

按以下语法使用关键字 ALTER DATABASE,您可以编程设置、修改或删除数据库密码。

ALTER DATABASE PASSWORD NewPassword OldPassword

在这个语句中,密码由方括号 ([]) 分隔的 String 值表示,但下述情况例外。第一次设置数据库密码时,使用 NULL 关键字作为 ALTER DATABASE 语句中的 OldPassword 参数。要删除数据库密码,请使用 NULL 关键字作为 ALTER DATABASE 语句的 NewPassword 参数。在这些情况下,关键字 NULL 不应出现在方框中。在使用以下过程之前,可能需要设置对 Microsoft ADO Ext 2.5 for DDL and Security 库的引用(如果尚未设置):

1. 在 Visual Basic 编辑器中,指向“工具”菜单中的“引用”。将显示“引用”对话框。
2. 选中 Microsoft ADO Ext 2.5 for DDL and Security 复选框。

请看以下第一次设置密码时的代码:

Private Function CreateDBPassword(ByVal Password As String, _
     ByVal Path As String) As Boolean
   Dim objConn as ADODB.Connection
   Dim strAlterPassword as String
   On Error GoTo CreateDBPassword_Err
   ' 创建 SQL 串以初始化一个数据库密码。
   strAlterPassword = "ALTER DATABASE PASSWORD [Password] NULL;"
   ' 打开不具有安全设置的数据库。
   Set objConn = New ADODB.Connection
   With objConn
     .Mode = adModeShareExclusive
     .Open "Provider=Microsoft.Jet.OLEDB.4.0;Data " & _
       "Source=Path;"
   ' 执行 SQL 语句对数据库进行安全设置。
   .Execute (strAlterPassword)
   End With
   ' 清除对象。
   objConn.Close
   Set objConn = Nothing
  
   ' 如果成功,返回 true。
   CreateDBPassword = True
CreateDBPassword_Err:
   Msgbox Err.Number & ":" & Err.Description
   CreateDBPassword = False
End Function

此过程接受用户的密码以及 .mdb 文件的路径。首先,我们声明一个变量,代表对不具有安全设置的数据库的连接,同时声明一个 String 变量以包含我们用于更改密码的 SQL 语句。下一步,我们将 strAlterPassword 设置给使用 ALTER DATABASE PASSWORD 关键字的 Jet SQL 语句。请注意,因为我们不是要替换密码,因而第二个参数被设置为 NULL。下一步,我们打开一个到该数据库的连接。要设置密码,必须以独占方式打开数据库,因此要设置 Mode 属性。然后执行 SQL 语句。您通常可以从一个数据库运行此过程,以便在一个单独的不具有安全设置的数据库中设置密码。如果一切正常,函数返回 True。如果要更改具有安全设置的数据库的密码,首先需要使用旧密码登录数据库,然后再更改密码。以下过程显示了这一技术。在使用以下过程之前,可能需要设置对 Microsoft ADO Ext 2.5 for DDL and Security 库的引用(如果尚未设置):

1. 在 Visual Basic 编辑器中,指向“工具”菜单中的“引用”。将显示“引用”对话框。
2. 选中 Microsoft ADO Ext 2.5 for DDL and Security 复选框。

请看以下过程:

Private Function ChangeDBPassword(ByVal OldPassword As String, _
     ByVal NewPassword As String, ByVal Path As String) As Boolean
   Dim objConn as ADODB.Connection
   Dim strAlterPassword as String
   On Error GoTo ChangeDBPassword_Err
   ' 创建 SQL 串以更改数据库密码。
   strAlterPassword = "ALTER DATABASE PASSWORD [NewPassword] [OldPassword];"
   ' 打开具有安全设置的数据库。
   Set objConn = New ADODB.Connection
   With objConn
     .Mode = adModeShareExclusive
     .Provider = "Microsoft.Jet.OLEDB.4.0"
     .Properties("Jet OLEDB:Database Password") = "OldPassword"
     .Open "Data Source=Path;"
     ' 执行 SQL 语句以更改密码。
     .Execute (strAlterPassword)
   End With
   ' 清除对象。
   objConn.Close
   Set objConn = Nothing
   ChangeDBPassword = True
ChangeDBPassword_Err:
   Msgbox Err.Number & ":" & Err.Description
   ChangeDBPassword = False
End Function

上一页  1 2 3 4 5 6  下一页

Tags:了解 Microsoft Access

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接