我可以使用SQL Server凭据作为我的C#应用​​程序凭据吗?

时间:2016-06-09 15:05:22

标签: c# sql sql-server

我有为多个用户创建C#应用程序的项目。用户的凭据必须存储在SQL Server数据库表中。此数据库将用于存储其他表中的更多信息。

在创建应用程序用户帐户时,将设置他对数据库的权限级别。

知道服务器/数据库登录/用户已经存储在数据库的系统表中,我是否也可以将此表用作我的应用程序凭据表?

在这种情况下,它是否允许为应用程序和SQL服务器提供唯一的日志。

谢谢。

2 个答案:

答案 0 :(得分:1)

简短的回答是肯定的,但为什么要允许用户访问SQL Server,这是C#应用程序的工作。基本的C#应用​​程序模板应该能够处理权限级别。这些通常存储在SQL服务器上的aspnet数据库中。

最安全的方法是为每个访问级别设置一个SQL用户,然后在用户登录后由应用程序确定。

通过在C#中创建一个记录每个SQL事务的简单日志记录方法,您可以轻松地记录谁,什么,何时以及为什么。

(我会在评论中加上这些,但显然我的声誉不够好; - )

答案 1 :(得分:0)

你可能会做这样的事情,但我会建议不要这样做。如果是我,我会做这样的事情(如果我理解你的情况正确,一般来说......这当然只有一种方式)

  1. 找出您希望用户拥有的数据库访问级别集
  2. 在sql server中为每个方案创建一个sql用户,并添加到相应的角色以获取所需的访问权限
  3. 使用ID列和您在步骤2中创建的sql用户的凭据创建应用程序角色表。
  4. 创建一个应用程序用户表,用于存储用户凭据和其他信息,包括角色ID,该角色是3中创建的表的外键。
  5. 在您的应用程序中,在生成sql连接时,您可以使用登录用户的应用程序角色详细信息动态创建SQL连接字符串