c# – MySQL数据库:限制用户访问他们创建的数据
使用C#和
MySQL,是否可以创建单独的用户帐户来访问数据库,并且只允许用户查看/修改/删除自己的数据?
解决方法
在SQL中,您可以将用户或用户组的权限授予表和视图上的所有SIDU访问类型(选择,插入,删除,更新).
如果您在行级别讨论更精细的粒度,我认为您需要将此信息存储在某个位置;最直接的方法是向需要限制的每个表添加诸如所有者字段和/或权限字段之类的内容. 另一种方法是创建一个或多个表,其中包含受限制或非受限制记录或内容的密钥,如项目或区域. 如果你有一个精心设计的所有权概念,那么第一个解决方案就不会非常难以编码.特权,现在和以后都足够灵活. 您将添加一个访问逻辑层,它在最简单的情况下添加一个额外的where子句,例如:..AND WHERE table.ownerID = @ownerid或者类似于每个SELECT.对于每个INSERT,它将使用当前用户ID或组ID和/或其当前访问权限填充该字段. 规划用户组,因为一个用户通常需要做另一个用户的工作,至少部分地… 额外的特权表需要更好的规划.. 还要考虑工具和管理这些数据的功能.. 更新 由于现在很清楚,您想要设置基于Web的数据访问,您可以为每个用户创建单独的表,其中包含用户名或哈希或加密版本,用作每个表的前缀;或者,更常见的是,您可以为每个用户设置一个单独的数据库,同样使用以某种方式从用户名或用户ID派生的数据库名称. 每个用户使用一个单独的DB的文章更容易编写,因为在登录之后,每个用户的所有内容都是相同的,即不需要向SQL注入任何内容. 唯一可能的考虑因素可能来自提供商的技术或货币限制.有些软件包只允许少量数据库.在这种情况下,表前缀方法是下一个最可能的解决方案. 因此,您期望的用户数量也可能是决定因素. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |