我有一个 Windows 应用程序项目,它使用 SQL Server 2012 来维护它的数据。
为了保护我的应用程序,我决定为我系统中的每个用户创建一个 SQL Server 登录。
这是一个好主意吗?
我有一个 Windows 应用程序项目,它使用 SQL Server 2012 来维护它的数据。
为了保护我的应用程序,我决定为我系统中的每个用户创建一个 SQL Server 登录。
这是一个好主意吗?
如果您不使用,Windows Authentication
那么这将是您最好的选择。您还可以将用户放入Roles
该用户组并指定该用户组的权限。
如果您要求每个用户具有不同的权限,并且您需要准确确定哪个用户对每个数据库实体(表、视图、存储过程、函数等)具有哪些权限,那么创建一个新用户将是可行的方法。这将允许您微调每个帐户,启用/禁用帐户,轻松授予/撤销权限。
正如@dash 所说,维护起来会更困难,但我认为拥有细粒度的安全性比维护大量基础更重要。
您可以尝试创建访问矩阵表以将数据访问级别映射到每个用户。然后,您可以根据登录用户的访问级别显示/隐藏应用程序中加载的数据。正如@dash 所说,这将更难维护,但它可能比创建个人登录更容易。其次,我想创建一个插入/更新/删除脚本来编辑矩阵而不是让 DBA 编辑 SQL Server 登录名也会更容易。