Параметры и свойства извлечения SqlPackage
Действие Извлечение SqlPackage создает схему подключенной базы данных в DACPAC-файле (DACPAC). По умолчанию данные в DACPAC-файл не включаются. Чтобы включить данные, используйте действие экспорта или свойства извлечения ExtractAllTableData/TableData.
Синтаксис для командной строки
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 Active Directory 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 Azure Active Directory 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 Azure Active Directory 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: | /at | {строка} | Указывает маркер доступа для проверки подлинности на основе маркеров. Этот маркер используется при подключении к целевой базе данных. |
/Action: | /a | Extract | Указывает действие, подлежащее выполнению. |
/AzureCloudConfig: | /acc | {строка} | Указывает пользовательские конечные точки для подключения к Azure Active Directory в формате AzureActiveDirectoryAuthority={значение};DatabaseServicePrincipalName={значение}". |
/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: | /scs | {строка} | Указывает допустимую строку подключения SQL Server или Azure к базе данных-источнику. Если этот параметр указан, ему будет отдаваться предпочтение перед всеми остальными параметрами источника. |
/SourceDatabaseName: | /sdn | {строка} | Определяет имя базы данных-источника. |
/SourceEncryptConnection: | /sec | {Необязательный| Обязательный| Строгий| True| False} | Указывает, следует ли использовать шифрование SQL для соединения с базой данных-источником. Значение по умолчанию равно True. |
/SourceHostNameInCertificate: | /shnic | {строка} | Указывает значение, используемое для проверки исходного SQL Server TLS/SSL-сертификата при шифровании уровня связи с помощью TLS. |
/SourcePassword: | /sp | {строка} | В сценариях с проверкой подлинности SQL Server — определяет пароль для доступа к базе данных-источнику. |
/SourceServerName: | /ssn | {строка} | Определяет имя сервера, где размещается база данных-источник. |
/SourceTimeout: | /st | {целое_число} | Задает время ожидания подключения к базе данных-источнику (в секундах). |
/SourceTrustServerCertificate: | /stsc | {True|False} | Определяет, используется ли протокол TLS для шифрования подключения к базе данных-источнику без прохода по цепочке сертификатов для проверки доверия. По умолчанию используется значение False. |
/SourceUser: | /su | {строка} | В сценариях с проверкой подлинности SQL Server — определяет пользователя SQL Server для доступа к базе данных-источнику. |
/TargetFile: | /tf | {строка} | Указывает целевой файл (то есть DACPAC-файл) в локальном хранилище для использования в качестве целевого объекта действия вместо базы данных. Если используется этот параметр, все остальные параметры целевого объекта будут недействительны. Этот параметр будет недопустимым для действий, которые поддерживают только целевые объекты базы данных. |
/TenantId: | /tid | {строка} | Представляет ИД клиента AAD или доменное имя. Этот параметр необходим для поддержки гостевых или импортированных пользователей AAD, а также учетных записей Майкрософт, например outlook.com, hotmail.com или live.com. Если этот параметр пропущен, будет использоваться ИД клиента по умолчанию для AAD. При этом предполагается, что прошедший проверку подлинности пользователь является собственным пользователем для этого AD. Однако в этом случае все гостевые или импортированные пользователи и (или) учетные записи Майкрософт, размещенные в этой службе AAD, не поддерживаются, и операция завершится ошибкой. Дополнительные сведения об универсальной проверке подлинности Active Directory см. в статье Универсальная проверка подлинности с Базой данных SQL и Azure Synapse Analytics (поддержка SSMS для MFA). |
/ThreadMaxStackSize: | /tmss | {целое_число} | Указывает максимальный размер в мегабайтах для потока, выполняющий действие SqlPackage. Этот вариант следует использовать только при появлении исключений переполнения стека, возникающих при анализе очень больших инструкций TSQL. |
/UniversalAuthentication: | /ua | {True|False} | Указывает, следует ли использовать универсальную проверку подлинности. Если задано значение true, протокол интерактивной проверки подлинности активируется с поддержкой MFA. Этот параметр также можно применять для проверки подлинности AAD без MFA, используя интерактивный протокол, где пользователю необходимо ввести имя пользователя и пароль, или встроенную проверку подлинности (учетные данные Windows). Если для элемента /UniversalAuthentication задано значение True, в элементе SourceConnectionString (/scs) не может быть указана проверка подлинности AAD. Если для элемента /UniversalAuthentication задано значение False, в элементе SourceConnectionString (/scs) должна быть указана проверка подлинности AAD. Дополнительные сведения об универсальной проверке подлинности Active Directory см. в статье Универсальная проверка подлинности с Базой данных SQL и Azure Synapse Analytics (поддержка SSMS для MFA). |
Свойства, относящиеся к действию извлечения
Свойство | Значение | Описание |
---|---|---|
/p: | AzureStorageBlobEndpoint=(STRING) | Конечная точка Хранилище BLOB-объектов Azure. См. раздел SqlPackage для Azure Synapse Analytics. |
/p: | AzureStorageContainer=(STRING) | Хранилище BLOB-объектов Azure контейнер. См. раздел SqlPackage для Azure Synapse Analytics. |
/p: | AzureStorageKey=(STRING) | Ключ учетной записи хранения Azure. См. раздел SqlPackage для Azure Synapse Analytics. |
/p: | AzureStorageRootPath=(STRING) | Корневой путь хранилища в контейнере. Без этого свойства путь по умолчанию имеет значение servername/databasename/timestamp/ . См. раздел SqlPackage для Azure Synapse Analytics. |
/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) | Указывает таблицу, из которой будут извлечены данные. Укажите имя таблицы со скобками или без скобок. Имя должно быть указано в формате: имя_схемы.идентификатор_таблицы. Это свойство может быть указано несколько раз, чтобы указать несколько параметров. |
/p: | TempDirectoryForTableData=(STRING) | Указывает временный каталог, используемый для буферизации табличных данных перед записью в файл пакета. |
/p: | VerifyExtraction=(BOOLEAN 'True') | Указывает, следует ли проверять извлеченную модель схемы. |
Next Steps
- Дополнительные сведения о SqlPackage
- Устранение неполадок с SqlPackage