SMO不复制角色成员身份

问题描述

您好,我正在尝试使用SMO在同一服务器中创建一个数据库的精确副本。我能够复制架构,数据和用户,但是我只是注意到,用户的角色并未在数据库之间复制。他们的角色如下所示:

原始数据库

Original DB

克隆数据库

Cloned DB

我当前的传输对象配置如下:

Transfer t = new Transfer(database);
t.Options.DriAll = true;
t.copySchema = true;
t.copyData = true;
t.copyAllDatabaseScopedCredentials = true;
t.copyAllRoles = true;
t.copyAllUsers = true;
t.PreserveDbo = true;
t.PreserveLogins = true;
t.DestinationServer = connection.DataSource;
t.DestinationDatabase = dbname;
t.TransferData();

但是角色没有被复制,因此,当用户尝试读取/写入任何内容时,我会收到该用户的“登录失败”错误,是否缺少我的配置?还是使用SMO无法做到这一点?

感谢您的帮助!

解决方法

尝试t.Options.IncludeDatabaseRoleMemberships = true