1

我正在编写一个多用户应用程序(.NET - C#),其中每个用户的数据都与其他用户分开,并且用户之间没有共同的数据。确保没有用户可以访问其他用户的数据至关重要。

有哪些方法可以在数据库级别和/或应用程序架构中实现安全性来实现这一目标?例如(这完全是虚构的——我并不是说这是一种好或坏的方法)在所有数据表中包含一个 userID 列可能是一种方法。

我正在用 C# (asp.net) 和 SQL Server 2008 开发应用程序。我正在寻找我正在使用的工具中的原生选项或一般模式。

4

3 回答 3

1

我相信通过用户 ID 将数据与用户关联是最常见的方法。

另一种方法是加密。每个用户都可以有一些密钥、一个实际的数字密钥或者可能只是一个密码,并且他们的所有数据都可以用他们的密钥加密,这样其他用户就无法访问它。您仍然需要将数据与用户 ID 关联以进行查询等。

于 2010-06-07T01:36:49.243 回答
0

你可以这样做 1. 创建一个 dbo.users 表并具有以下列,注意这不完整

table users
 -pid [uniqueidentifier]
 -userfname
 -userlname
 -useremail
 -userpwd




table userdata
  - datapid 
  - pid
  - [other columns to hoold data]

一旦您的用户针对此表进行身份验证,那么您只需使用 ppid 返回并输入和更新与该用户相关的任何数据

于 2010-06-07T01:43:24.487 回答
0

如果它适用于您的问题(我不知道),为什么不使用适合您问题的任何类型的访问方法(谁可以访问哪个文件,并具有读取、写入和删除的权限)?例如:

  • 称为 (MAC) 的强制访问控制
  • 自主访问控制 (DAC)
  • 基于角色的访问控制 (RBAC)
  • 基于规则的访问控制 (RBAC)

如果适合您的问题,您可以阅读并选择其中之一。

于 2010-06-07T02:12:38.943 回答