我正在使用SMO创建数据库副本以进行测试。我正在复制的数据库是一个部分包含的数据库,其中包含一个用户(即用户是使用CREATE USER x WITH PASSWORD =' y'类型的语句创建的。)
除了目标数据库中包含的用户的密码与源数据库中的密码不同之外,一切都很顺利。
我使用的SMO代码是:
var transfer = new Transfer(sourceDatabase)
{
DestinationServer = destinationServerName,
DestinationDatabase = destinationDatabaseName,
CopyAllSchemas = true,
CopyAllRoles = true,
CopyAllUsers = true,
CopyAllDatabaseTriggers = true,
CopyAllDefaults = true,
CopyData = false,
Options =
{
DriAll = true,
Triggers = true,
ScriptOwner = true,
Permissions = true,
}
}
transfer.TransferData();
我可以运行查询以在副本后显式设置密码,我相信可以以散列形式复制密码(如SQL Server contained database - get password hash中所述)。但是,我想知道是否有一些我忽略的选项允许我使用与SMO Transfer
或相关类相关的选项来执行此操作。