Параметры и свойства извлечения SqlPackage

Действие извлечения SqlPackage создает схему подключенной базы данных в ФАЙЛЕ DACPAC (DACPAC). По умолчанию данные в DACPAC-файл не включаются. Чтобы включить данные, используйте действие экспорта или свойства извлечения ExtractAllTableData/TableData.

Примечание.

Хотя идентификатор Microsoft Entra — это новое имя Azure Active Directory (Azure AD), чтобы предотвратить нарушение существующих сред, Azure AD по-прежнему остается в некоторых жестко закодированных элементах, таких как поля пользовательского интерфейса, поставщики подключений, коды ошибок и командлеты. В этой статье два имени являются взаимозаменяемыми.

Синтаксис для командной строки

SqlPackage инициирует действия, указанные с помощью параметров, свойств и переменных SQLCMD, указанных в командной строке.

SqlPackage /Action:Extract {parameters} {properties}

Примечание.

При извлечении базы данных с учетными данными паролей (например, для проверки подлинности пользователей SQL) пароль заменяется другим паролем соответствующей сложности. Пользователи SqlPackage или DacFx должны изменить пароль после публикации DACPAC-файла.

Примеры

# example extract to create a schema-only .dacpac file connecting using SQL authentication
SqlPackage /Action:Extract /TargetFile:{filename}.dacpac /DiagnosticsFile:{logFile}.log /p:ExtractAllTableData=false /p:VerifyExtraction=true \
    /SourceServerName:{serverFQDN} /SourceDatabaseName:{databaseName} /SourceUser:{username} /SourcePassword:{password}

# example extract to create a .sql file containing the schema definition of the database
SqlPackage /Action:Extract /TargetFile:{filename}.dacpac /DiagnosticsFile:{logFile}.log /SourceServerName:{serverFQDN} \
    /SourceDatabaseName:{databaseName} /SourceUser:{username} /SourcePassword:{password} /p:ExtractTarget=File

# example extract to create a .dacpac file with data connecting using SQL authentication
SqlPackage /Action:Extract /TargetFile:{filename}.dacpac /DiagnosticsFile:{logFile}.log /p:ExtractAllTableData=true /p:VerifyExtraction=true \
    /SourceServerName:{serverFQDN} /SourceDatabaseName:{databaseName} /SourceUser:{username} /SourcePassword:{password}


# example extract to create a schema-only .dacpac file connecting using Microsoft Entra managed identity
SqlPackage /Action:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Managed Identity;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"


# example extract to create a schema-only .dacpac file connecting using Microsoft Entra username and password
SqlPackage /Action:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;User ID={yourusername};Password={yourpassword}"


# example extract to create a schema-only .dacpac file connecting using Microsoft Entra universal authentication
SqlPackage /Action:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" /UniversalAuthentication:True \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# example extract to create a schema-only .dacpac file connecting using an access token associated with a service principal
$Account = Connect-AzAccount -ServicePrincipal -Tenant $Tenant -Credential $Credential
$AccessToken_Object = (Get-AzAccessToken -Account $Account -Resource "https://database.windows.net/")
$AccessToken = $AccessToken_Object.Token

SqlPackage /at:$AccessToken /Action:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# OR
SqlPackage /at:$($AccessToken_Object.Token) /Action:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Параметры действия извлечения

Параметр Краткая форма значение Описание
/AccessToken: /В: {строка} Указывает маркер доступа для проверки подлинности на основе маркеров. Этот маркер используется при подключении к целевой базе данных.
/Action: /a: Extract Указывает действие, подлежащее выполнению.
/AzureCloudConfig: /Acc: {строка} Указывает пользовательские конечные точки для подключения к идентификатору Microsoft Entra в формате: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}".
/Diagnostics: /D: {True|False} Указывает, следует ли выводить сведения из журнала диагностики в консоль. Значение по умолчанию — False.
/DiagnosticsFile: /Df: {строка} Указывает файл, в котором следует вести журнал диагностики.
/MaxParallelism: /Mp: {целое_число} Задает степень параллелизма для параллельных операций с базой данных. Значение по умолчанию — 8.
/OverwriteFiles: /of: {True|False} Указывает, должен ли SqlPackage перезаписать существующие файлы. Указание false приводит к прерыванию действия SqlPackage, если обнаружен существующий файл. Значение по умолчанию — True.
/Properties: /p: {имя_свойства}={значение} Указывает пару "имя-значение" для свойства действия; {имя_свойства}={значение}.
/Quiet: /Q: {True|False} Указывает, происходит ли подавление подробного отзыва. Значение по умолчанию — False.
/SourceConnectionString: /Скс: {строка} Указывает допустимую строка подключения SQL Server или Azure в исходную базу данных. Если этот параметр указан, ему будет отдаваться предпочтение перед всеми остальными параметрами источника.
/SourceDatabaseName: /Sdn: {строка} Определяет имя базы данных-источника.
/SourceEncryptConnection: /Сек: {Необязательный|Обязательный|Строгий|True|False} Указывает, следует ли использовать шифрование SQL для соединения с базой данных-источником. Значение по умолчанию — True.
/SourceHostNameInCertificate: /shnic: {строка} Указывает значение, используемое для проверки исходного TLS/SSL-сертификата SQL Server, когда уровень обмена данными шифруется с помощью TLS.
/SourcePassword: /Sp: {строка} В сценариях с проверкой подлинности SQL Server — определяет пароль для доступа к базе данных-источнику.
/SourceServerName: /Ssn: {строка} Определяет имя сервера, где размещается база данных-источник.
/SourceTimeout: /St: {целое_число} Задает время ожидания подключения к базе данных-источнику (в секундах).
/SourceTrustServerCertificate: /stsc: {True|False} Определяет, используется ли протокол TLS для шифрования подключения к базе данных-источнику без прохода по цепочке сертификатов для проверки доверия. По умолчанию используется значение False.
/SourceUser: /Су: {строка} В сценариях с проверкой подлинности SQL Server — определяет пользователя SQL Server для доступа к базе данных-источнику.
/TargetFile: /Tf: {строка} Указывает целевой файл (то есть DACPAC-файл) в локальном хранилище для использования в качестве целевого объекта действия вместо базы данных. Если используется этот параметр, все остальные параметры целевого объекта будут недействительны. Этот параметр будет недопустимым для действий, которые поддерживают только целевые объекты базы данных.
/TenantId: /Tid: {строка} Представляет идентификатор клиента Microsoft Entra или доменное имя. Этот параметр необходим для поддержки гостевых или импортированных пользователей Microsoft Entra, а также учетных записей Майкрософт, таких как outlook.com, hotmail.com или live.com. Если этот параметр опущен, будет использоваться идентификатор клиента по умолчанию для идентификатора Microsoft Entra, предполагая, что прошедший проверку подлинности пользователь является собственным пользователем для этого клиента. Однако в этом случае любые гостевые или импортированные пользователи и /или учетные записи Майкрософт, размещенные в этом идентификаторе Microsoft Entra, не поддерживаются, и операция завершится ошибкой.
Дополнительные сведения см. в статье универсальной проверки подлинности с помощью База данных SQL и Azure Synapse Analytics (поддержка SSMS для MFA).
/ThreadMaxStackSize: /tmss: {целое_число} Указывает максимальный размер в мегабайтах для потока, выполняемого действием SqlPackage. Этот параметр следует использовать только при обнаружении исключений переполнения стека, возникающих при анализе очень больших инструкций Transact-SQL.
/UniversalAuthentication: /Ua: {True|False} Указывает, следует ли использовать универсальную проверку подлинности. Если задано значение true, протокол интерактивной проверки подлинности активируется с поддержкой MFA. Этот параметр также можно использовать для проверки подлинности Microsoft Entra без MFA, используя интерактивный протокол, требующий от пользователя ввод имени пользователя и пароля или встроенной проверки подлинности (учетные данные Windows). Если для параметра /UniversalAuthentication задано значение True, проверка подлинности Microsoft Entra не может быть указана в source Подключение ionString (/scs). Если для параметра /UniversalAuthentication задано значение False, проверка подлинности Microsoft Entra должна быть указана в источнике Подключение ionString (/scs).
Дополнительные сведения см. в статье универсальной проверки подлинности с помощью База данных SQL и Azure Synapse Analytics (поддержка SSMS для MFA).

Свойства, относящиеся к действию извлечения

Свойство Значение Описание
/p: AzureSharedAccessSignatureToken=(STRING) Маркер подписанного URL-адреса Azure (SAS). См . статью SqlPackage для Azure Synapse Analytics и SqlPackage с данными в файлах Parquet.
/p: AzureStorageBlobEndpoint=(STRING) конечная точка Хранилище BLOB-объектов Azure. См . статью SqlPackage для Azure Synapse Analytics и SqlPackage с данными в файлах Parquet.
/p: AzureStorageContainer=(STRING) контейнер Хранилище BLOB-объектов Azure. См . статью SqlPackage для Azure Synapse Analytics и SqlPackage с данными в файлах Parquet.
/p: AzureStorageKey=(STRING) Ключ учетной записи хранения Azure. См . статью SqlPackage для Azure Synapse Analytics и SqlPackage с данными в файлах Parquet.
/p: AzureStorageRootPath=(STRING) Корневой путь хранилища в контейнере. Без этого свойства путь по умолчанию имеет значение servername/databasename/timestamp/. См . статью SqlPackage для Azure Synapse Analytics и SqlPackage с данными в файлах Parquet.
/p: CommandTimeout=(INT32 '60') Задает время ожидания команды в секундах при выполнении запросов к SQL Server.
/p: CompressionOption=({Normal|Maximum|Fast|SuperFast|NotCompressed} 'Normal') Указывает тип сжатия.
/p: DacApplicationDescription=(STRING) Определяет описание приложения для сохранения в метаданных DACPAC.
/p: DacApplicationName=(STRING) Определяет имя приложения для сохранения в метаданных DACPAC. Значением по умолчанию является имя базы данных.
/p: DacMajorVersion=(INT32 '1') Определяет основную версию для сохранения в метаданных DACPAC.
/p: DacMinorVersion=(INT32 '0') Определяет дополнительный номер версии для сохранения в метаданных DACPAC.
/p: DatabaseLockTimeout=(INT32 '60') Позволяет задать превышение времени ожидания блокировки в секундах для базы данных при выполнении запросов к SQL Server. Для ожидания без ограничений используйте значение "-1".
/p: ExtractAllTableData=(BOOLEAN 'False') Указывает, извлекаются ли данные из всех пользовательских таблиц. Если задано значение true, данные извлекаются из всех пользовательских таблиц и нельзя указать отдельные пользовательские таблицы для извлечения данных. Если задано значение false, укажите одну или несколько пользовательских таблиц для извлечения данных.
/p: ExtractApplicationScopedObjectsOnly=(BOOLEAN 'True') Если задано значение true, то из указанного источника извлекаются только объекты в области приложения. Если задано значение false, то из указанного источника извлекаются все объекты.
/p: ExtractReferencedServerScopedElements=(BOOLEAN 'True') Если задано значение true, извлекаются объекты имени для входа, аудита сервера и учетных данных, на которые ссылаются объекты из базы данных-источника.
/p: ExtractTarget=({DacPac|File|Flat|ObjectType|Schema|SchemaObjectType} 'DacPac') Задает альтернативные форматы выходных данных схемы базы данных, значение по умолчанию — DacPac для вывода одного файла .dacpac. Дополнительные параметры вывода одного или нескольких файлов .sql, упорядоченных с помощью SchemaObjectType (файлы по папкам для каждой схемы и типа объекта), Schema (файлы по папкам для каждой схемы), ObjectType (файлы по папкам для каждого типа объекта), Flat (все файлы в одной папке) или File (1 отдельный файл).
/p: ExtractUsageProperties=(BOOLEAN 'False') Указывает, будут ли извлечены свойства использования, такие как количество строк в таблице и размер индекса, из базы данных.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Определяет, следует ли заменять все имена объектов в журналах случайным хэш-значением.
/p: IgnoreExtendedProperties=(BOOLEAN 'False') Указывает, следует ли пропускать расширенные свойства.
/p: IgnorePermissions=(BOOLEAN 'True') Указывает, следует ли не учитывать разрешения.
/p: IgnoreUserLoginMappings=(BOOLEAN 'False') Указывает, будут ли игнорироваться связи между пользователями и именами для входа.
/p: LongRunningCommandTimeout=(INT32 '0') Позволяет задать время ожидания в секундах для длительной команды при выполнении запросов к SQL Server. Для ожидания без ограничений используйте значение "0".
/p: Storage=({File|Memory}) Указывает тип резервного хранилища для модели схемы, используемой во время извлечения. "Memory" — значение по умолчанию для версии SqlPackage для .NET Core. Значение "File" доступно и является значением и по умолчанию для версии SqlPackage для .NET Framework.
/p: TableData=(STRING) Указывает таблицу, из которой будут извлечены данные. Укажите имя таблицы со скобками или без скобок. Имя должно быть указано в формате: имя_схемы.идентификатор_таблицы. Это свойство может быть указано несколько раз, чтобы указать несколько параметров. Применяется к данным, извлеченным как к файлам Parquet, так и к .dacpac файлам Parquet.
/p: TempDirectoryForTableData=(STRING) Указывает временный каталог, используемый для буферизации табличных данных перед записью в файл пакета.
/p: VerifyExtraction=(BOOLEAN 'False') Указывает, следует ли проверять извлеченную модель схемы.

Next Steps