ACCESS MSSQL Mysql Oracle 
Google adsense申请技巧本站核心代理域名注册主机业务 快速发布你的买卖域名买卖网站信息 1元注册 cn域名
站长每日新闻导读 √ ·推荐万网空间¥120元 150m 站长网:站长必上的网站网站联盟大全本站代理万网域名55空间120元
 2007-7-16 13:56:06

如何保证Microsoft Access的安全性

来源: 字体:[ ]

通过编程设置数据库密码

按以下语法使用关键字 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

此过程与前面的子例程类似,只是在登录具有安全设置的数据库时,需要使用更改之前的旧密码。为此,针对要更改的数据库,我们设置了 Connection 对象的 Database Password 属性。这是 Connection 对象的扩展属性之一,所以我们使用了如上所示的特殊语法。要从具有安全设置的数据库中删除密码,也可以使用此过程,只需将 ALTER DATABASE 语句的第一个参数替换为 NULL 关键字即可。

下面我们来看看如何实现比在数据库中设置密码更强大的保护手段。

使用 Security Wizard 设置 Access 数据库的安全性

可以使用 Security Wizard 设置数据库的安全性。为此,请执行以下步骤:

1.打开要设置安全性的数据库。

2.在“工具”菜单中,指向“安全”,然后单击“设置安全机制向导”。将显示“设置安全机制向导”对话框。

3.因为我们要创建一个新的工作组信息文件,因此请确保选中此选项,然后单击“下一步”。

4.在“设置安全机制向导”对话框的第二个屏幕中(见图 1),为工作组信息文件键入一个新名称,或者接受默认名称。键入一个工作组 ID (WID)。WID 唯一标识了此工作组文件的 Admins 组。下一步,在相应的文本框中键入您的姓名和单位。虽然这些输入是可选的,但最好还是填入,因为只有知道这些信息的人才能重新创建工作组信息文件。

 


图 1


 推荐教程
     
网站地图 - 域名注册续费虚拟主机代理 - 交易论坛 - 网站投稿 - 广告服务 - 帮助中心 - 联系我们
Copyright ©2003-2007 www.Admin5.com All Rights Reserved