为每个用户创建一个SQL Server登录名

时间:2013-06-26 07:40:35

标签: c# .net sql-server database login

我有一个Windows应用程序项目,它使用SQL Server 2012来维护它的数据。

为了保护我的应用程序,我决定为系统中的每个用户创建一个SQL Server登录。

这是个好主意吗?

2 个答案:

答案 0 :(得分:1)

如果您没有使用Windows Authentication,那么这将是您最好的选择。您还可以将用户置于Roles并指定该用户组的权限。

如果您要求每个用户具有不同的权限,并且您需要准确了解哪个用户对每个数据库实体(表,视图,存储过程,函数等)具有哪些权限,那么创建新用户将是方式去。这将允许您微调每个帐户,启用/禁用帐户,轻松授予/撤消权限。

正如@dash所说,它将更难维护,但我认为具有细粒度的安全性超过维持大量基础。

答案 1 :(得分:0)

您可以尝试创建一个访问矩阵表,以将数据访问级别映射到每个用户。然后,您可以显示/隐藏应用程序中加载的数据,具体取决于登录用户的访问级别。正如@dash所说,这将更难维护,但它可能比创建单独登录更容易。其次,我认为创建一个插入/更新/删除脚本来编辑矩阵也更容易,而不是让DBA编辑SQL Server登录。