C# 在代码中集成安全与密码-带有一些SQL编写的小型.net应用程序

C# 在代码中集成安全与密码-带有一些SQL编写的小型.net应用程序,c#,sql,sql-server,security,credentials,C#,Sql,Sql Server,Security,Credentials,我有一个小应用程序,可以更改MS SQL数据库中的一些值。该应用程序每天都有大量用户使用 在SQL Server中为所有这些人提供db_datawriter并在应用程序中使用集成安全性是否更好 或者我应该只为此应用程序创建SQL user并将凭据存储在代码中 还是有更好的解决方案/最佳实践 谢谢几年前我的回答是如果它只是一个小型的内部应用程序,创建一个sql用户并将凭据存储在应用程序配置中 然而来自体验的“仅仅是一个小应用程序”有随着功能的增长而增长的趋势,因为企业意识到这个“快速赢”的“小应用

我有一个小应用程序,可以更改MS SQL数据库中的一些值。该应用程序每天都有大量用户使用

在SQL Server中为所有这些人提供db_datawriter并在应用程序中使用集成安全性是否更好

或者我应该只为此应用程序创建SQL user并将凭据存储在代码中

还是有更好的解决方案/最佳实践


谢谢几年前我的回答是如果它只是一个小型的内部应用程序,创建一个sql用户并将凭据存储在应用程序配置中

然而来自体验的“仅仅是一个小应用程序”有随着功能的增长而增长的趋势,因为企业意识到这个“快速赢”的“小应用程序”可以增加更多的价值

花一点时间,通过创建一个与API通信的应用程序来正确地进行操作

您将感激您随后以正确的方法开始,这也巩固了最佳实践和良好的设计。您现在也可以正确地执行此操作,设置一个核心应用程序,该应用程序可以在创建其他应用程序时复制或使用

如果你坚持不使用API,那么关于最佳实践的问题就没有很好的答案了

在数据库中创建用户是一个管理噩梦,但它确实将安全性留给了操作系统。
在code/config中保存凭据并使用SQL用户更易于管理,但代码可以反编译,从而公开您的密码。

老实说,如果我是管理员,我不会允许对数据库进行这种访问。我希望服务与数据库对话,客户端与服务对话。@Fildor:然后,服务将不会硬编码凭据,而是由管理员配置。@ThomasWeller例如。如果它在azure上运行,密钥库也是一个选项。这似乎是OP实现API服务器访问数据库的最佳时机。这是一个非常小但有用的应用程序。:-)添加服务肯定是一个好办法,谢谢。。。但现在有点过分了。在我到达之前,你能回答我问题的第一部分吗?或者这两种方式都是绝对没有gos的?“在数据库中创建用户是一个管理噩梦”您可以为每个用户创建单独的登录名,但将登录名添加到windows(域)更容易管理组并从中添加或删除用户group@bradbury9我同意使用域组要容易得多,但这仍然比通过域策略访问应用程序并让API完成它的任务要大。事实上,我的目标是:1-API。2-集成安全性(使用组)3-SQL Server用户/密码非常感谢。。。我现在添加了集成的安全性,很快就会使用API!