SqlPackage.exe 14.0.3811.1提取数据库如何排除用户/角色及成员资格
解决SqlPackage提取数据库时排除用户、角色及角色成员资格的问题
我来帮你搞定这个需求!你用的是SqlPackage.exe 14.0.3811.1版本,想要提取数据库但排除用户、角色和角色成员资格,你的现有命令已经有了基础配置,我帮你补充完整并说明关键参数:
完整的提取命令
SqlPackage.exe /Action:Extract /SourceDatabaseName:"Foo" /SourceServerName:"foo\bar" /TargetFile:"C:\temp\Extracted\foo.dacpac" /p:ExtractAllTableData=True /p:DacApplicationName=foo.bar /p:DacMajorVersion=1 /p:DacMinorVersion=0 /p:VerifyExtraction=False /p:ExtractApplicationScopedObjectsOnly=True /p:IgnorePermissions=True /p:ExcludeObjectTypes=Users;Roles;RoleMemberships
关键参数说明
/p:ExcludeObjectTypes=Users;Roles;RoleMemberships:这是核心配置,明确指定要从提取结果中排除的对象类型,直接覆盖你要排除的用户、角色及角色成员资格。在14.0版本的SqlPackage中,这些类型都是支持的。/p:IgnorePermissions=True:配合上面的参数,确保所有权限相关的设置都被忽略,避免残留权限配置。/p:ExtractApplicationScopedObjectsOnly=True:你已经加入了这个参数,它会只提取数据库级的应用范围对象,自动排除服务器级的登录,但数据库级的用户还是需要通过ExcludeObjectTypes来排除,两者搭配更稳妥。
测试一下这个命令,生成的dacpac里就不会包含你要排除的对象了。
内容的提问来源于stack exchange,提问作者Darrell
相关产品推荐
相关产品推荐

