相关疑难解决方法(0)

TFS 2012 - 数据库项目 - 没有登录映射到 Windows 的用户 - 最佳实践

我在 TFS 2012 中有一个 SQL Server 数据库项目 (.NET 4.5)。作为 DBA,我正在寻找一种机制,开发人员可以通过该机制创建“CREATE USER”sql 脚本并在数据库中分配他们的权限以匹配应用程序,而无需需要知道它最终映射到什么登录名。这是因为我想隐藏实时和测试环境中的登录名,并让 DBA 根据需要在每个环境中创建这些登录名。

如果我进入项目并创建一个新用户,即 [MyApplication],则默认脚本建议使用以下模板:

CREATE USER [MyApplication]
    WITHOUT LOGIN
    WITH DEFAULT_SCHEMA = dbo
GO
Run Code Online (Sandbox Code Playgroud)

这很棒,因为我可以创建一个映射到无登录的用户,然后在部署时我可以运行:

ALTER USER [MyApplication] WITH LOGIN=[MyApplicationLogin], Name=[MyApplication]
Run Code Online (Sandbox Code Playgroud)

只要将用户映射到 SQL 登录名就可以了。如果登录要映射到 Windows 登录,当我们尝试重新映射时,SQL 会抛出错误:

Msg 33016, Level 16, State 1, Line 1
The user cannot be remapped to a login. Remapping can only be done for users that were 
mapped to Windows or SQL logins.
Run Code Online (Sandbox Code Playgroud)

所以问题是,在项目中设置它的最佳方法是什么,以便开发人员可以创建一个用户,该用户可以在数据库用户中任意命名,然后我们将如何将其重新映射到 Windows 身份验证登录?

提前致谢!

security sql-server sql-server-2012

5
推荐指数
1
解决办法
968
查看次数

标签 统计

security ×1

sql-server ×1

sql-server-2012 ×1