|
7#
楼主 |
发表于 2004-7-7 18:35:00
|
只看该作者
通过编程添加和删除用户和组
为数据库设置了安全性后,您可能需要使用用户和组。以下各节展示了其中的一些技巧。
在使用以下各节介绍的过程之前,可能需要设置对 Microsoft ADO Ext 2.5 for DDL and Security 库的引用(如果尚未设置):
•
在 Visual Basic 编辑器中,指向“工具”菜单中的“引用”。将显示“引用”对话框。
•
选中 Microsoft ADO Ext 2.5 for DDL and Security 复选框。
添加和删除用户
以下过程将创建一个新的用户帐户,然后将其追加到用于当前数据库的工作组信息文件中的默认 Users 组。
注意:要在 Access 中使用下面的示例,您需要作为 Admins 组的成员登录并打开一个数据库。在下面的过程中,您要确保工作组信息文件不包含在 strUser 中指定了其名称的用户。例如,您可以先调用 DeleteUser 子例程来确保这一点。请看以下代码:Private Function AddUser(ByVal strUser As String, _
ByVal strPID As String, _
Optional ByVal strPwd As String) As Boolean
Dim catDB As ADOX.Catalog
On Error GoTo AddUser_Err
' 实例化 Catalog 对象。
Set catDB = New ADOX.Catalog
With catDB
' 使用到当前数据库的连接打开
' Catalog 对象。
.ActiveConnection = CurrentProject.Connection
' 创建新的用户帐户。
.Users.Append strUser, strPwd, strPID
' 向默认 Users 组追加新的用户帐户。
.Groups("Users").Users.Append strUser
End With
' 关闭 Catalog 对象。
Set catDB = Nothing
AddUser = True
AddUser_Err:
Msgbox Err.Number & ":" & Err.Description
AddUser = False
End Function
该过程首先为 Catalog 对象声明一个变量,然后实例化该对象。
注意:Catalog 对象是 Access 数据库文件中所有对象的容器。
然后,该过程打开到当前数据库的连接,并使用来自调用过程的参数,将新用户追加到 Catalog 对象的 Users 集合中。然后新用户被追加到默认的 Users 组。Users 集合包含了在工作组信息文件中定义的数据库的所有用户。
要删除现有用户,可以使用以下过程:Private Function DeleteUser(ByVal strUser As String) As Boolean
Dim catDB As ADOX.Catalog
On Error GoTo DeleteUser
' 实例化 Catalog 对象。
Set catDB = New ADOX.Catalog
With catDB
' 在当前数据库中打开 Catalog 对象。
.ActiveConnection = CurrentProject.Connection
' 删除 strUser。
.Users.Delete strUser
End With
' 关闭 Catalog 对象。
Set catDB = Nothing
DeleteUser = True
DeleteUser_Err:
Msgbox Err.Number & ":" & Err.Description
DeleteUser = False
End Function
此过程与前面的过程类似,只是使用了 Catalog 对象的 Delete 方法删除了在 strUserString 参数中指定的用户。
添加和删除组
添加组的过程与添加用户的过程类似。<RE><FONT face=Verdana size=2>rivate Function AddGroup(ByVal strGroup As String, _
ByVal strPID As String) As Boolean
Dim catDB As ADOX.Catalog
On Error GoTo AddGroup_Err
Set catDB = New ADOX.Catalog
With catDB
' 在当前数据库中打开 Catalog 对象。
.ActiveConnection = CurrentProject.Connection
' 创建新的组。
.Groups.Append strGroup, strPID
End With
' 关闭 Catalog 对象。
Set catDB = Nothing
|
|