我刚刚将现有的 SQL Server 2008r2 生产数据库导入到 VS 2013 数据库项目中。
我现在遇到了一些错误
Error SQL71501: User: [mydbuser] has an unresolved reference to Login [mydbuser].
Run Code Online (Sandbox Code Playgroud)
我真的不需要我的 VS DB 项目来管理用户,但我担心如果它们不存在,它会在部署时尝试删除它们。
文件本身生成为
CREATE USER [mydbuser] FOR LOGIN [mydbuser];
Run Code Online (Sandbox Code Playgroud)
或者
CREATE USER [mydomainuser] FOR LOGIN [MYDOMAIN\mydomainuser];
Run Code Online (Sandbox Code Playgroud)
错误标记显示它专门用于Login。由于这是一个系统级对象,我可以理解它超出了 db 项目的范围。
我是否更喜欢将它们全部更改为
CREATE USER [mydbuser] WITHOUT LOGIN;
Run Code Online (Sandbox Code Playgroud)
或将CREATE LOGIN子句添加到每个文件的开头?
删除登录引用似乎更简单,而完全删除用户将是最简单的。
我想确保我按照预期的方式使用该工具。将其中任何一个重新发布到生产环境中会不会有任何问题?通过项目添加用户/登录的正确程序是什么?