我有一个 MS-access 数据库。但它在共享驱动器上。并且要求只有选定数量的人才能使用它。有没有办法对用户进行身份验证?
7 回答
是的,打开数据库然后运行工具->安全->用户级安全向导。它将引导您完成创建新工作组文件、创建用户和组以及保护访问对象的过程。
由于 Access 是文件驱动的,为什么不在共享驱动器中创建一个文件夹并将文件夹权限分配给适当的人。
两者都做。设置目录的访问权限并为其创建一个新的安全文件。
目录是您的前线安全,并在宏观层面限制访问
安全文件可用于对各种表格、表单、报告等的访问进行分段。您甚至可以将它授予某些人只读访问权限和其他人更完整的权限。
Access 2007 中不提供用户级安全性。
- 信任(启用)数据库中的禁用内容
- 使用密码加密或解密数据库
- 打包、签名和部署 Office Access 2007 数据库
如果您在域上,您是否可以不使用文件级安全性来阻止用户访问它?
我在 VBA 中完成所有这些工作。在交换机 Form_Open 子中,使用 windows API 将用户名读入字符串变量,然后检查用户名是否在您的有效用户列表中。如果 OK,则发出欢迎消息,如果不是 OK,则退出 Access。
' 检查用户 Dim user As String Dim AuthorizedUser As Boolean user = UCase(CurrentUser())
AuthorizedUser = True
Select Case user
Case "USER_A":
Case "USER_B":
Case "USER_C":
Case Else: AuthorizedUser = False
End Select
If AuthorizedUser = True Then
MsgBox "Welcome authorized user " & user
Else
MsgBox user & "is not Authorized. For access to this database contact User_A"
DoCmd.Quit
End If
两种解决方案:
将 Access 文件放在具有适当权限设置的文件共享上。如果您需要提供只读访问权限,这将无法正常工作,因为 Access 无法写出它在打开 Access 文件 (.mdb) 时创建的临时 .ldb 文件。
将 Access 文件的“数据”移动到 Sql Server 实例中......您可以在 SQL Server 中授予权限以限制人们可以执行的操作。我们使用这种方法为每个人提供只读访问权限,然后为特定人员提供读写访问权限。要将数据移动到 SQL,您可以将其导入新的 SQL 数据库,然后将表链接到 Access 文件(重命名以便报告/查询/等继续工作)。