数据库通常有一个管理员,其中包含管理帐户,可以创建其他帐户并为这些帐户提供受控访问权限以访问数据库。因此,如果有人使用 SQL服务器管理工作室(SSMS)来访问数据库或从任何其他工具访问,那么他应该是 admin 或有权执行某些操作的用户操作。同样,当我编写了一个具有后端数据库的应用程序( C#/ Windows窗体应用程序)时,该应用程序使用connection string
中的凭据来访问 SQL中的数据库server 2008R2开发人员版(这是我使用的)。但目前我的connection string
管理员级别访问用户/密码和其他凭据到数据库,这是一个灾难。所以我有以下问题
SQL server
中具有访问权限的帐户,我是否必须为我的客户端应用创建一个单独的帐户,并且只有此客户端应用帐户才能访问数据库? 我之所以问这个是因为 SQL Admin 可以查看任何数据库表及其内容,还可以在 SQL 中配置其他帐户,这些帐户可以访问数据库和表。因此,如果我想让这个应用程序安全地连接到它的后端数据库,我应该确保从客户端只有这个应用程序有访问权限,没有其他客户端或第三方数据库访问工具可以访问我的数据库。
如果我需要在客户端应用的数据库中创建一个单独的帐户,我该怎么做?请详细告诉我!
建立这些数据库连接的行业标准是什么?
感谢
答案 0 :(得分:2)
您可以为每个用户授予对数据库的访问权限(可能限制权限以禁止他们修改数据库对象),然后使用集成安全性,或者创建一个您配置为具有只读访问权限的特殊用户应用程序需要的表/视图/存储过程。此用户名/密码组合将存储在app.config中,如果已分发,您可以查看加密这些凭据。
请参阅SQL Documentation on how to do this。它非常全面。
我已经在行业工作超过15年了,我已经看到它在所有类型的环境中都做了两种方式,这实际上取决于谁想管理用户,以及容易或困难这种方法是在给定的商业环境中。