Metaphor Asked: 2015-11-10 10:11:10 +0800 CST2015-11-10 10:11:10 +0800 CST 2015-11-10 10:11:10 +0800 CST 在不在数据库中创建新用户的情况下将 dbo 角色分配给登录 772 我想在不在数据库中创建新用户的情况下,将现有数据库上的 dbo 权限分配给现有登录名。我想让登录使用 dbo 用户,就像 sa 服务器角色的成员一样。 我发现的所有内容都涉及创建一个新的数据库用户。 谢谢! sql-server sql-server-2014 1 个回答 Voted Best Answer Solomon Rutzky 2015-11-10T12:49:35+08:002015-11-10T12:49:35+08:00 如果可能的话,这应该从事物的部署方面来解决,而不是从事物的目标数据库方面进行有问题的修改(指的是与使用 deprecated 相关的问题的评论中的对话sp_addalias)。 根据确切的问题是什么,可以使用 DacPac 部署的各种配置选项来解决此类冲突。如果运行SqlPackage ,这些选项可以在命令行上指定,或者可以放入 DAC 发布配置文件(即 XML 配置文件)中。 此处感兴趣的选项列在页面的发布参数、属性和 SQLCMD 变量部分SqlPackage。 首先,您是否将以下任何一项设置为True: DropObjectsNotInSource(默认值:假) DropRoleMembersNotInSource(默认值:假) IgnoreLoginSids(默认值:真) 如果您将DropObjectsNotInSource属性设置为True,则尝试添加: DoNotDropObjectType=Users ExcludeObjectType=Users IgnoreRoleMembership=True IgnoreUserSettingsObjects=True?? 如果需要指定ExcludeObjectType属性,将如下所示,具体取决于指定的位置: 在命令行上:/p:ExcludeObjectType=Users 在 DAC 发布配置文件中: <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ExcludeObjectType>Users</ExcludeObjectType> </PropertyGroup> </Project>
如果可能的话,这应该从事物的部署方面来解决,而不是从事物的目标数据库方面进行有问题的修改(指的是与使用 deprecated 相关的问题的评论中的对话
sp_addalias
)。根据确切的问题是什么,可以使用 DacPac 部署的各种配置选项来解决此类冲突。如果运行SqlPackage ,这些选项可以在命令行上指定,或者可以放入 DAC 发布配置文件(即 XML 配置文件)中。
此处感兴趣的选项列在页面的发布参数、属性和 SQLCMD 变量部分
SqlPackage
。首先,您是否将以下任何一项设置为
True
:DropObjectsNotInSource
(默认值:假)DropRoleMembersNotInSource
(默认值:假)IgnoreLoginSids
(默认值:真)如果您将
DropObjectsNotInSource
属性设置为True
,则尝试添加:DoNotDropObjectType=Users
ExcludeObjectType=Users
IgnoreRoleMembership=True
IgnoreUserSettingsObjects=True
??如果需要指定
ExcludeObjectType
属性,将如下所示,具体取决于指定的位置:/p:ExcludeObjectType=Users
在 DAC 发布配置文件中: