C# 使用sql server的winform应用程序的多个应用程序角色

C# 使用sql server的winform应用程序的多个应用程序角色,c#,.net,sql,sql-server,C#,.net,Sql,Sql Server,我的c.net winforms应用程序使用sql server 2005 express,将由三个用户运行,我想为每个用户提供不同的用户id和密码,因此在这种情况下,我应该使用sql server的哪个安全功能 应用程序角色-can应用程序 角色可用于此,或执行以下操作: 应用程序角色只提供一个 全民公决 申请 为用户ID创建一个表& 密码 为每个要访问的用户创建新登录 连接到sql server并授予 每个登录的权限 我的应用程序将安装在3台机器上,服务器SVR、客户端c-1、c-2。使用w

我的c.net winforms应用程序使用sql server 2005 express,将由三个用户运行,我想为每个用户提供不同的用户id和密码,因此在这种情况下,我应该使用sql server的哪个安全功能

应用程序角色-can应用程序 角色可用于此,或执行以下操作: 应用程序角色只提供一个 全民公决 申请

为用户ID创建一个表& 密码

为每个要访问的用户创建新登录 连接到sql server并授予 每个登录的权限

我的应用程序将安装在3台机器上,服务器SVR、客户端c-1、c-2。使用windows xp在局域网上运行


我可以为单个应用程序创建多个应用程序角色吗?我的意思是如果我在申请表中有3张表格。所有3个表单是否都可以使用不同的应用程序角色

我猜您希望不同的用户以不同的角色、权限和能力运行应用程序,并访问应用程序中的功能


我不会使用SQL Server安全性为他们提供不同的应用程序角色。只需为应用程序定义一个服务器用户。然后使用某种方法标识用户NTID,或使用数据库中的用户名/密码表登录,并使用该表配置他们在应用程序中的体验。

您可以在SQL Server中创建角色,例如您的AppSuperRole、AppNormalRole、AppReadOnlyRole,然后将对象权限授予这些角色中的每一个,例如,将sometable上的insert授予您的AppSuperRole。或者将“在某个表上选择”授予AppReadOnlyrole。然后,无论在数据库中创建用户是SQL Server用户还是域用户,都可以将该用户添加到相应的角色。这就是如何在数据库对象上实现安全性。如何处理GUI/表示层体验可以与后端断开连接。您可以标识Windows域用户,或者创建应用程序用户并要求使用这些用户登录,然后相应地管理GUI行为。例如,您可以从已担任只读角色的用户中删除“保存记录”按钮


编辑:我认为最简单的方法是使用Windows域用户。向后端中的域用户授予db访问权限,并将这些用户添加到相应的后端角色,以确定他们可以在后端看到/更改什么。然后,在GUI中,使图形行为适应正在使用您的应用程序的域用户。如果未从表单中删除“保存”按钮,则只读角色用户可以单击该按钮,但更新将失败。因此,您通常不会向该用户提供明显的能力来做他们没有权限做的事情。

这正是我在回答中的意思,但我认为您说得更好。很好。事实上,你说的正好相反。您写道:我不会使用SQL Server安全性为他们提供不同的应用程序角色。只需为应用程序定义一个服务器用户。角色指的是应用程序角色或roles@sqlchild当前位置我不理解你陈述的这一部分:你所说的角色是指。。。只是角色。我指的是SQL Server角色,可以向其添加用户,从而获得已授予该角色的对象权限。为了我的利益,你是在问问题还是想澄清我的意思?