了解Microsoft Access安全性
2007-10-15 15:15:06 来源:WEB开发网通过编程设置数据库密码
按以下语法使用关键字 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
- ››Microsoft Outlook 2010 邮箱客户端中常用邮件设置...
- ››Access数据库安全策略之ASP式
- ››Accessibility.updateProperties ,Accessibility...
- ››Microsoft Office2007Open XML 格式的术语表
- ››Microsoft PowerPoint 2010介绍
- ››Microsoft ReportViewer(微软报表)项目中的应用...
- ››Microsoft APP-V 4.5使用经验之序列化工具
- ››Access denied for user...
- ››Access denied for user: root@dbhost (Using pas...
- ››了解Windows Mobile文件结构
- ››access 的页怎么用
- ››了解 IBM Smart Business Development and Test o...
更多精彩
赞助商链接