在 SQL Server 中,您可以拥有基于 Windows 帐户的帐户,也可以拥有单独的特定 SQL 帐户。对于这两种变体,您需要每个用户一个帐户需要使用您的数据库。
唯一的例外是为 Windows 安全性创建 SQL Server 登录的能力group, e.g. MyAppUsers
,然后是数据库中用于该登录的用户。这样,属于该安全组(在 Windows/AD 中)的任何 Windows 帐户也将有权查看/使用您的数据库。
通过这种方法,您还可以将谁可以使用您的数据库的管理移出 SQL Server,因为它实际上只取决于 Windows 安全组中的成员身份。
一次登录,一个用户 - 多个 Windows 帐户获得此权限。对我来说似乎是赢家!
Update:
为 Windows AD 组创建登录名:
CREATE LOGIN [DOMAIN\GroupName] FROM WINDOWS
根据该登录名在数据库中创建一个用户:
USE (your database)
CREATE USER GroupNameUser
FOR LOGIN [DOMAIN\GroupName]
SQL Server 连接的连接字符串:
server=(your server);database=(your database);integrated security=SSPI;
我还能告诉你什么?
更新#2:代码not使用 Windows 帐户是这样的:
创建一个登录名each需要使用您的应用程序的用户
CREATE LOGIN (some login name) WITH PASSWORD = 'Top$ecret'
根据该登录名在数据库中创建一个用户 - 再次,一次每个用户您的应用程序的:
USE (your database)
CREATE USER UserName
FOR LOGIN (some login name)
SQL Server 连接的连接字符串:
server=(your server);database=(your database);
user id=UserName;Password=Top$ecret
但再次强调:这需要每个数据库中包含一个登录名(包括密码)和一个用户您需要跟踪并可能从数据库应用程序中执行“重置密码”操作等操作。管理开销方面还有更多!