-->

发布的Visual Studio数据库项目时,我可以忽略登录?(Can I ignore login

2019-10-19 06:16发布

我们有一个使用SQL Server身份验证,与可以部署用户,和其他人可以阅读,为简单起见一个SQL Server,我会打电话给他们“部署”和“网络”。

我有困难的权限设置了使用的Visual Studio(2012)数据库项目,作为“部署”用户没有足够的权限来创建新的服务器登录。

我可以添加脚本做这样的事情:

GRANT SELECT ON foo.bar TO [web]

然后,这生闷气(用“SQL71501:权限有未解决的引用的对象[网络]。”),直到我添加:

CREATE USER [web] FOR LOGIN [web];

然后,这生闷气(用“SQL71501:用户:[幅]具有未解决的引用登录[网络]。”),直到我添加:

CREATE LOGIN [web] WITH PASSWORD = '******';

这就失败发布:

删除权限...
删除权限...
创建[WEBUSER] ...
(67,1):SQL72014:.net SqlClient数据提供:消息15247,级别16,状态1,行1用户没有执行此操作的权限。
(67,0):SQL72045:脚本执行错误。 在执行脚本:
CREATE LOGIN [WEBUSER]
WITH PASSWORD = '**';

而正在执行的批处理时发生错误。

这是没有意义的,因为用户已经存在,所以不应该需要创建

我怎么能允许通过部署用户发布,但不尝试(重新)创建登录每一次? 或者,是否有可能引用外部创建的用户,而无需发布呢?

Answer 1:

由于用户已经存在,我怀疑是被用于执行部署的用户没有权限查看。 下面应该是所有你需要解决这个问题。

GRANT VIEW DEFINITION ON LOGIN::web TO deploy



文章来源: Can I ignore logins when publishing a Visual Studio Database project?