C# 如何将客户端应用程序连接到数据库?

C# 如何将客户端应用程序连接到数据库?,c#,sql-server,winforms,C#,Sql Server,Winforms,通常,一个数据库有一个管理员和一个管理员帐户,他可以创建其他帐户,并为这些帐户提供访问数据库的受控访问权限。因此,如果有人使用SQLServerManagementStudio(SSMS)访问数据库或任何其他工具,那么他应该是管理员或有权执行某些操作的用户。同样,当我编写了一个具有后端数据库的应用程序(C#/Windows forms app)时,该应用程序使用连接字符串中的凭据来访问SQL server 2008R2 developer edition中的数据库(这就是我使用的)。但目前我的连

通常,一个数据库有一个管理员和一个管理员帐户,他可以创建其他帐户,并为这些帐户提供访问数据库的受控访问权限。因此,如果有人使用SQLServerManagementStudio(SSMS)访问数据库或任何其他工具,那么他应该是管理员或有权执行某些操作的用户。同样,当我编写了一个具有后端数据库的应用程序(C#/Windows forms app)时,该应用程序使用
连接字符串中的凭据来访问SQL server 2008R2 developer edition中的数据库(这就是我使用的)。但目前我的
连接字符串
对数据库具有管理员级别访问权限用户/密码和其他凭据,这是一场灾难。所以我有一个问题

  • 同样地,
    SQL server
    中那些具有访问权限的帐户,我是否必须为我的客户端应用程序创建一个单独的帐户,该帐户将具有访问数据库的权限,并且只有该客户端应用程序帐户才具有访问权限 我问这个问题是因为SQL Admin可以查看任何数据库表及其内容,也可以在SQL中配置其他可以访问数据库和表的帐户。因此,如果我想让这个应用程序安全地连接到它的后端数据库,我应该确保从客户端只有这个应用程序有访问权限,没有其他客户端或第三方数据库访问工具可以访问我的数据库

  • 如果我需要在数据库中为客户端应用程序创建一个单独的帐户,我该怎么做?请详细告诉我

  • 建立这些数据库连接的行业标准是什么

  • 谢谢

  • 您可以授予每个用户对数据库的访问权限(可能限制权限,使其不允许修改db对象),然后使用集成安全性,或者创建一个特殊用户,将其配置为对应用程序所需的表/视图/存储过程具有只读访问权限。这个用户名/密码组合将存储在app.config中,如果它是分布式的,您可以研究加密这些凭据

  • 请参阅。这是相当全面的

  • 我在业界工作了15年以上,在所有类型的环境中,我都看到了这两种方法的应用,这实际上取决于谁想要管理用户,以及在给定的业务环境中,这种方法有多容易或难