我正在尝试创建一个具有 SSDT 数据库项目登录名的用户。该登录名已存在于目标服务器上。使用以下 SQL:
CREATE USER [MyLogin]
FOR LOGIN [MyLogin]
WITH DEFAULT_SCHEMA = dbo
GO
我收到错误:
错误 1 SQL71501:用户:[MyLogin] 具有对登录 [MyLogin] 的未解析引用。
我找到了两个解决方案,但都不适用于 2013:
1)创建一个服务器项目来引用登录。当前版本的 SSDT / VS2013 中没有此选项
2) 禁用模式检查。 2013 年该选项缺失(我相信是Options -> Database Tools -> Schema Compare
)
实际上,您可以使用标准 T-SQL 语法在 SQL Server 数据库项目中创建服务器级登录:
CREATE LOGIN [Login_Name] WITH PASSWORD = '<Password>';
Note:您还可以右键单击数据库项目并选择“添加新项”,然后导航至 SQL Server > 安全性(在模板对话框中)并选择“登录 (SQL Server)”。
这可以解决 SQL71501 错误,并且(假设您使用 SQLPackage.exe 进行部署)将允许 SQLPackage.exe 在部署和发布之前将安全对象与目标数据库进行比较。
希望有帮助:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)