与SQL Server中的用户管理混淆

时间:2012-06-05 17:22:04

标签: c# sql-server

我创建了一个WPF应用程序,它直接连接到SQL Server数据库(而不是通过服务),位于数据库服务器上。现在我需要创建用户管理,其中每个用户都有自己的登录凭据(不是Windows身份验证)。这就是我想到的方法:

  1. 在应用程序安装期间,数据库管理员将为我提供一个包含足够权限来创建数据库的帐户

  2. 使用这些凭据,我将连接到SQL Server,执行脚本以创建数据库,还执行脚本为该数据库创建一个具有完全权限的默认管理员用户。

  3. 我将使用这个新用户来管理我的数据库的所有用户和角色。

  4. 对于我的应用程序中的每个用户,我需要在我的数据库中创建一个用户。

  5. 问题:

    • 这是正确的做法吗?

    • 我对如何管理这个很困惑。如果我的数据库中有一个用户和角色表,而且我还需要在数据库级别创建用户和角色,那么它看起来像是在复制东西?

    或者我错过了什么?

2 个答案:

答案 0 :(得分:1)

我可能会通过创建角色和通过角色管理事物而不是用户名/登录来做到这一点。 最好在Database中创建一个应用程序登录,其凭据将用于数据库和应用程序之间的通信。

答案 1 :(得分:0)

只有很小的重叠。在您的Users表中,您存储与SQL帐户匹配的用户名,用户名是唯一的重叠。所有其他信息都存储在Users表中。

我没有看到这样做的任何问题,唯一的缺点是你需要有一个管理员帐户,在安装的任何SQL Server上有相当大的访问权限,但听起来你已经考虑到这一点。