Azure SQL Database Managed Instance と SQL Server の T-SQL の相違点Azure SQL Database Managed Instance T-SQL differences from SQL Server

この記事では、Azure SQL Database Managed Instance とオンプレミスの SQL Server データベース エンジンの構文および動作の相違点について簡単に説明します。This article summarizes and explains the differences in syntax and behavior between Azure SQL Database Managed Instance and on-premises SQL Server Database Engine. 次の内容について説明します。The following subjects are discussed:

マネージド インスタンスのデプロイ オプションは、オンプレミスの SQL Server データベース エンジンとの高い互換性を備えています。The Managed Instance deployment option provides high compatibility with on-premises SQL Server Database Engine. SQL Server データベース エンジンのほとんどの機能がマネージド インスタンスでサポートされています。Most of the SQL Server database engine features are supported in a managed instance.

移行

可用性Availability

Always OnAlways On

高可用性は Managed Instance に組み込まれており、ユーザーが制御することはできません。High availability is built into Managed Instance and can't be controlled by users. 次のステートメントはサポートされていません。The following statements aren't supported:

バックアップBackup

Managed Instance には自動バックアップがあるので、ユーザーは完全なデータベースの COPY_ONLY バックアップを作成できます。Managed instances have automatic backups, so users can create full database COPY_ONLY backups. 差分、ログ、ファイル スナップショットの各バックアップはサポートされていません。Differential, log, and file snapshot backups aren't supported.

  • Managed Instance では、Azure BLOB ストレージ アカウントにのみインスタンス データベースをバックアップできます。With a managed instance, you can back up an instance database only to an Azure Blob storage account:
    • BACKUP TO URL だけがサポートされています。Only BACKUP TO URL is supported.
    • FILETAPE、およびバックアップ デバイスはサポートされていません。FILE, TAPE, and backup devices aren't supported.
  • ほとんどの一般的な WITH オプションがサポートされています。Most of the general WITH options are supported.
    • COPY_ONLY は必須です。COPY_ONLY is mandatory.
    • FILE_SNAPSHOT はサポートされていません。FILE_SNAPSHOT isn't supported.
    • テープ オプション: REWINDNOREWINDUNLOADNOUNLOAD はサポートされていません。Tape options: REWIND, NOREWIND, UNLOAD, and NOUNLOAD aren't supported.
    • ログ固有のオプション: NORECOVERYSTANDBYNO_TRUNCATE はサポートされていません。Log-specific options: NORECOVERY, STANDBY, and NO_TRUNCATE aren't supported.

制限事項:Limitations:

  • Managed Instance では、最大 32 個のストライプを使用するバックアップにインスタンス データベースをバックアップできます。バックアップの圧縮を使用した場合、このバックアップで最大 4 TB のデータベースに十分対応できます。With a managed instance, you can back up an instance database to a backup with up to 32 stripes, which is enough for databases up to 4 TB if backup compression is used.

  • BACKUP コマンドを使用した場合の最大バックアップ ストライプ サイズは、最大 BLOB サイズである 195 GB です。The maximum backup stripe size by using the BACKUP command in a managed instance is 195 GB, which is the maximum blob size. バックアップ コマンドのストライプ数を増やして、個々のストライプ サイズを小さくし、この制限を超えないようにします。Increase the number of stripes in the backup command to reduce individual stripe size and stay within this limit.

    ヒント

    次の操作を実行すると、オンプレミス環境の SQL Server または仮想マシンからデータベースをバックアップするときに、この制限を回避できます。To work around this limitation, when you back up a database from either SQL Server in an on-premises environment or in a virtual machine, you can:

    • URL にバックアップする代わりに DISK にバックアップします。Back up to DISK instead of backing up to URL.
    • バックアップ ファイルを BLOB ストレージにアップロードします。Upload the backup files to Blob storage.
    • Managed Instance に復元します。Restore into the managed instance.

    Managed Instance で Restore コマンドを実行すると、アップロードされたバックアップ ファイルに対して異なる BLOB タイプが使用されるため、より大きな BLOB サイズがサポートされます。The Restore command in a managed instance supports bigger blob sizes in the backup files because a different blob type is used for storage of the uploaded backup files.

T-SQL を使用したバックアップについては、BACKUP に関する記事をご覧ください。For information about backups using T-SQL, see BACKUP.

セキュリティSecurity

監査Auditing

Azure SQL Database のデータベースと SQL Server のデータベースにおける監査の主な相違点は、次のとおりです。The key differences between auditing in databases in Azure SQL Database and databases in SQL Server are:

  • Azure SQL Database で Managed Instance のデプロイ オプションを使用すると、監査はサーバー レベルで機能します。With the Managed Instance deployment option in Azure SQL Database, auditing works at the server level. .xel ログ ファイルは、Azure BLOB ストレージに格納されます。The .xel log files are stored in Azure Blob storage.
  • Azure SQL Database で単一データベースとエラスティック プールのデプロイ オプションを使用すると、監査はデータベース レベルで機能します。With the single database and elastic pool deployment options in Azure SQL Database, auditing works at the database level.
  • オンプロミスまたは仮想マシンの SQL Server では、監査はサーバー レベルで機能します。In SQL Server on-premises or virtual machines, auditing works at the server level. イベントは、ファイル システムまたは Windows イベント ログに格納されます。Events are stored on file system or Windows event logs.

マネージド インスタンスの XEvent 監査では、Azure Blob Storage のターゲットがサポートされます。XEvent auditing in Managed Instance supports Azure Blob storage targets. ファイル ログと Windows ログはサポートされていません。File and Windows logs aren't supported.

Azure Blob Storage を監査するための CREATE AUDIT 構文の主な相違点は次のとおりです。The key differences in the CREATE AUDIT syntax for auditing to Azure Blob storage are:

  • .xel ファイルが配置されている Azure BLOB ストレージ コンテナーの URL の指定に使用できる新しい TO URL 構文が用意されています。A new syntax TO URL is provided that you can use to specify the URL of the Azure Blob storage container where the .xel files are placed.
  • Managed Instance は Windows ファイル共有にアクセスできないため、TO FILE 構文はサポートされていません。The syntax TO FILE isn't supported because a managed instance can't access Windows file shares.

詳細については、次を参照してください。For more information, see:

証明書Certificates

Managed Instance はファイル共有と Windows フォルダーにはアクセスできないので、次の制約が適用されます。A managed instance can't access file shares and Windows folders, so the following constraints apply:

  • CREATE FROM/BACKUP TO ファイルは、証明書ではサポートされていません。The CREATE FROM/BACKUP TO file isn't supported for certificates.
  • FILE/ASSEMBLY からの CREATE/BACKUP 証明書はサポートされていません。The CREATE/BACKUP certificate from FILE/ASSEMBLY isn't supported. 秘密キー ファイルは使用できません。Private key files can't be used.

CREATE CERTIFICATE に関する記事、および BACKUP CERTIFICATE に関する記事をご覧ください。See CREATE CERTIFICATE and BACKUP CERTIFICATE.

対処法: 証明書または秘密キーのスクリプトを作成し、.sql ファイルとして保存してバイナリから作成します。Workaround: Script for the certificate or private key, store as .sql file, and create from binary:

CREATE CERTIFICATE  
   FROM BINARY = asn_encoded_certificate
WITH PRIVATE KEY (<private_key_options>)

資格情報Credential

Azure Key Vault と SHARED ACCESS SIGNATURE の ID だけがサポートされています。Only Azure Key Vault and SHARED ACCESS SIGNATURE identities are supported. Windows ユーザーはサポートされていません。Windows users aren't supported.

CREATE CREDENTIAL に関する記事、および ALTER CREDENTIAL に関する記事をご覧ください。See CREATE CREDENTIAL and ALTER CREDENTIAL.

暗号化プロバイダーCryptographic providers

Managed Instance はファイルにアクセスできないため、暗号化プロバイダーは作成できません。A managed instance can't access files, so cryptographic providers can't be created:

ログインとユーザーLogins and users

  • FROM CERTIFICATEFROM ASYMMETRIC KEYFROM SID を使用して作成された SQL ログインはサポートされています。SQL logins created by using FROM CERTIFICATE, FROM ASYMMETRIC KEY, and FROM SID are supported. CREATE LOGIN に関する記事をご覧ください。See CREATE LOGIN.

  • CREATE LOGIN 構文または CREATE USER FROM Login [Azure AD Login] 構文を使用して作成された Azure Active Directory (Azure AD) サーバー プリンシパル (ログイン) がサポートされます (パブリック プレビュー)。Azure Active Directory (Azure AD) server principals (logins) created with the CREATE LOGIN syntax or the CREATE USER FROM LOGIN [Azure AD Login] syntax are supported (public preview). これらのログインは、サーバー レベルで作成されます。These logins are created at the server level.

    マネージド インスタンスは、CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER 構文で Azure AD データベース プリンシパルをサポートします。Managed Instance supports Azure AD database principals with the syntax CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER. この機能は、Azure AD 包含データベース ユーザーとも呼ばれます。This feature is also known as Azure AD contained database users.

  • CREATE LOGIN ... FROM WINDOWS 構文を使用して作成された Windows ログインはサポートされていません。Windows logins created with the CREATE LOGIN ... FROM WINDOWS syntax aren't supported. Azure Active Directory のログインとユーザーを使用します。Use Azure Active Directory logins and users.

  • インスタンスを作成した Azure AD ユーザーは、無制限の管理特権を持ちます。The Azure AD user who created the instance has unrestricted admin privileges.

  • 管理者以外の、データベース レベルの Azure AD ユーザーは、CREATE USER ... FROM EXTERNAL PROVIDER 構文を使用して作成できます。Non-administrator Azure AD database-level users can be created by using the CREATE USER ... FROM EXTERNAL PROVIDER syntax. CREATE USER ...FROM EXTERNAL PROVIDER を参照してください。See CREATE USER ... FROM EXTERNAL PROVIDER.

  • Azure AD サーバー プリンシパル (ログイン) は、1 つの Managed Instance 内のみで SQL 機能をサポートします。Azure AD server principals (logins) support SQL features within one managed instance only. 同じ Azure AD テナント内か、または異なるテナント内かに関係なく、Azure AD ユーザーの場合、クロス インスタンス対話を必要とする機能はサポートされていません。Features that require cross-instance interaction, no matter whether they're within the same Azure AD tenant or different tenants, aren't supported for Azure AD users. そのような機能の例として次のものがあります。Examples of such features are:

    • SQL トランザクション レプリケーション。SQL transactional replication.
    • リンク サーバー。Link server.
  • Azure AD グループにマップされている Azure AD ログインをデータベース所有者として設定することはサポートされていません。Setting an Azure AD login mapped to an Azure AD group as the database owner isn't supported.

  • EXECUTE AS 句など、他の Azure AD プリンシパルを使用することによる Azure AD サーバー レベル プリンシパルの権限の借用はサポートされています。Impersonation of Azure AD server-level principals by using other Azure AD principals is supported, such as the EXECUTE AS clause. EXECUTE AS の制限事項は次のとおりです。EXECUTE AS limitations are:

    • 名前がログイン名と異なる場合、EXECUTE AS USER は Azure AD ユーザーに対してサポートされません。EXECUTE AS USER isn't supported for Azure AD users when the name differs from the login name. たとえば、CREATE USER [myAadUser] FROM LOGIN [john@contoso.com] 構文を使用してユーザーが作成されて、EXEC AS USER = myAadUser を使用して権限借用が試行された場合などです。An example is when the user is created through the syntax CREATE USER [myAadUser] FROM LOGIN [john@contoso.com] and impersonation is attempted through EXEC AS USER = myAadUser. Azure AD サーバー プリンシパル (ログイン) から USER を作成するときは、user_name を LOGIN と同じ login_name として指定します。When you create a USER from an Azure AD server principal (login), specify the user_name as the same login_name from LOGIN.

    • Azure AD プリンシパルを対象とした次の操作を実行できるのは、sysadmin ロールに属している SQL Server レベル プリンシパル (ログイン) のみです。Only the SQL Server-level principals (logins) that are part of the sysadmin role can execute the following operations that target Azure AD principals:

      • EXECUTE AS USEREXECUTE AS USER
      • EXECUTE AS LOGINEXECUTE AS LOGIN
  • Azure AD サーバー プリンシパル (ログイン) のパブリック プレビュー制限事項:Public preview limitations for Azure AD server principals (logins):

    • Managed Instance に対する Active Directory 管理者の制限事項:Active Directory admin limitations for Managed Instance:

      • Managed Instance の設定に使用された Azure AD 管理者は、Managed Instance 内での Azure AD サーバー プリンシパル (ログイン) の作成には使用できません。The Azure AD admin used to set up the managed instance can't be used to create an Azure AD server principal (login) within the managed instance. sysadmin ロールである SQL Server アカウントを使用することにより、最初の Azure AD サーバー プリンシパル (ログイン) を作成する必要があります。You must create the first Azure AD server principal (login) by using a SQL Server account that's a sysadmin role. この一時的な制限事項は、Azure AD サーバー プリンシパル (ログイン) が一般提供されると削除されます。This temporary limitation will be removed after Azure AD server principals (logins) become generally available. Azure AD 管理者アカウントを使用してログインを作成しようとした場合、次のエラーが表示されます。Msg 15247, Level 16, State 1, Line 1 User does not have permission to perform this action.If you try to use an Azure AD admin account to create the login, you see the following error: Msg 15247, Level 16, State 1, Line 1 User does not have permission to perform this action.

        • 現時点では、マスター データベースに作成される最初の Azure AD ログインは、CREATE LOGIN FROM EXTERNAL PROVIDER を使用することにより、sysadmin である標準の SQL Server アカウント (Azure AD ではない) が作成する必要があります。Currently, the first Azure AD login created in the master database must be created by the standard SQL Server account (non-Azure AD) that's a sysadmin role by using CREATE LOGIN FROM EXTERNAL PROVIDER. 一般提供後、この制限事項は削除されます。After general availability, this limitation will be removed. 続いて、Managed Instance の Active Directory 管理者によって初期 Azure AD ログインを作成できます。Then you can create an initial Azure AD login by using the Active Directory admin for Managed Instance.
      • SQL Server Management Studio または SqlPackage で使用される DacFx (エクスポート/インポート) は、Azure AD ログインではサポートされていません。DacFx (export/import) used with SQL Server Management Studio or SqlPackage isn't supported for Azure AD logins. この制限事項は、Azure AD サーバー プリンシパル (ログイン) が一般提供されると削除されます。This limitation will be removed after Azure AD server principals (logins) become generally available.

      • SQL Server Management Studio での Azure AD サーバー プリンシパル (ログイン) の使用:Using Azure AD server principals (logins) with SQL Server Management Studio:

        • 任意の認証ログインを使用した Azure AD ログインのスクリプトはサポートされていません。Scripting Azure AD logins that use any authenticated login isn't supported.
        • IntelliSense は、CREATE LOGIN FROM EXTERNAL PROVIDER ステートメントを認識せず、赤の下線を表示します。IntelliSense doesn't recognize the CREATE LOGIN FROM EXTERNAL PROVIDER statement and shows a red underline.
  • Managed Instance のプロビジョニング プロセスによって作成されるサーバー レベル プリンシパル ログイン、securityadminsysadmin などのサーバー ロールのメンバー、あるいはサーバー レベルの ALTER ANY LOGIN アクセス許可を持つその他のログインのみが、Managed Instance のマスター データベースに Azure AD サーバー プリンシパル (ログイン) を作成できます。Only the server-level principal login, which is created by the Managed Instance provisioning process, members of the server roles, such as securityadmin or sysadmin, or other logins with ALTER ANY LOGIN permission at the server level can create Azure AD server principals (logins) in the master database for Managed Instance.

  • ログインが SQL プリンシパルの場合、作成コマンドを使用して Azure AD アカウントのログインを作成できるのは、sysadmin ロールに属しているログインのみです。If the login is a SQL principal, only logins that are part of the sysadmin role can use the create command to create logins for an Azure AD account.

  • Azure AD ログインは、Azure SQL Database Managed Instance に使用されるのと同じディレクトリ内の Azure AD のメンバーでなければなりません。The Azure AD login must be a member of an Azure AD within the same directory that's used for Azure SQL Database Managed Instance.

  • Azure AD サーバー プリンシパル (ログイン) は、SQL Server Management Studio 18.0 プレビュー 5 から、オブジェクト エクスプローラーに表示されます。Azure AD server principals (logins) are visible in Object Explorer starting with SQL Server Management Studio 18.0 preview 5.

  • Azure AD サーバー プリンシパル (ログイン) と Azure AD 管理者アカウントとの重複は許可されます。Overlapping Azure AD server principals (logins) with an Azure AD admin account is allowed. プリンシパルを解決してアクセス許可を Managed Instance に適用するとき、Azure AD の管理者よりも Azure AD サーバー プリンシパル (ログイン) が優先されます。Azure AD server principals (logins) take precedence over the Azure AD admin when you resolve the principal and apply permissions to the managed instance.

  • 認証時、認証するプリンシパルを解決するために次の順序が適用されます。During authentication, the following sequence is applied to resolve the authenticating principal:

    1. Azure AD アカウントが、Azure AD サーバー プリンシパル (ログイン) に直接マップされているものとして存在する (sys.server_principals に type "E" と指定されている) 場合、アクセスを許可し、Azure AD サーバー プリンシパル (ログイン) のアクセス権を適用する。If the Azure AD account exists as directly mapped to the Azure AD server principal (login), which is present in sys.server_principals as type "E," grant access and apply permissions of the Azure AD server principal (login).
    2. Azure AD アカウントが、Azure AD サーバー プリンシパル (ログイン) にマップされている Azure AD グループのメンバーである (sys.server_principals に type "X" と指定されている) 場合、アクセスを許可し、Azure AD グループ ログインのアクセス権を適用する。If the Azure AD account is a member of an Azure AD group that's mapped to the Azure AD server principal (login), which is present in sys.server_principals as type "X," grant access and apply permissions of the Azure AD group login.
    3. Azure AD アカウントが Managed Instance 用のポータル構成の特殊な Azure AD 管理者である (Managed Instance システム ビューに存在しない) 場合は、Managed Instance の Azure AD 管理者の特殊な固定アクセス許可を適用する (レガシー モード)。If the Azure AD account is a special portal-configured Azure AD admin for Managed Instance, which doesn't exist in Managed Instance system views, apply special fixed permissions of the Azure AD admin for Managed Instance (legacy mode).
    4. Azure AD アカウントが、データベース内の Azure AD ユーザーに直接マップされたものとして存在する (sys.database_principals に type "E" と指定されている) 場合、アクセスを許可し、Azure AD データベース ユーザーのアクセス許可を適用する。If the Azure AD account exists as directly mapped to an Azure AD user in a database, which is present in sys.database_principals as type "E," grant access and apply permissions of the Azure AD database user.
    5. Azure AD アカウントが、データベース内の Azure AD ユーザーにマップされた Azure AD グループのメンバーである (sys.database_principals に type "X" と指定されている) 場合、アクセスを許可し、Azure AD グループ ログインのアクセス許可を適用する。If the Azure AD account is a member of an Azure AD group that's mapped to an Azure AD user in a database, which is present in sys.database_principals as type "X," grant access and apply permissions of the Azure AD group login.
    6. Azure AD ユーザー アカウントまたは Azure AD グループ アカウントのいずれかにマップされている Azure AD ログインがあり、認証しているユーザーを解決する場合、この Azure AD ログインのすべてのアクセス許可が適用される。If there's an Azure AD login mapped to either an Azure AD user account or an Azure AD group account, which resolves to the user who's authenticating, all permissions from this Azure AD login are applied.

サービス キーとサービス マスター キーService key and service master key

構成Configuration

バッファー プール拡張機能Buffer pool extension

CollationCollation

既定のインスタンスの照合順序は SQL_Latin1_General_CP1_CI_AS であり、作成パラメーターとして指定できます。The default instance collation is SQL_Latin1_General_CP1_CI_AS and can be specified as a creation parameter. 照合順序」をご覧ください。See Collations.

互換性レベルCompatibility levels

  • サポートされている互換性レベルは、100、110、120、130、および 140 です。Supported compatibility levels are 100, 110, 120, 130, and 140.
  • 100 より低い互換性レベルはサポートされていません。Compatibility levels below 100 aren't supported.
  • 新しいデータベースの既定の互換性レベルは 140 です。The default compatibility level for new databases is 140. 互換性レベルが 100 以上のデータベースが復元された場合、互換性レベルは変更されません。For restored databases, the compatibility level remains unchanged if it was 100 and above.

ALTER DATABASE の互換性レベルに関する記事をご覧ください。See ALTER DATABASE Compatibility Level.

データベース ミラーリングDatabase mirroring

データベース ミラーリングはサポートされていません。Database mirroring isn't supported.

  • ALTER DATABASE SET PARTNER オプションと SET WITNESS オプションはサポートされていません。ALTER DATABASE SET PARTNER and SET WITNESS options aren't supported.
  • CREATE ENDPOINT … FOR DATABASE_MIRRORING はサポートされていません。CREATE ENDPOINT … FOR DATABASE_MIRRORING isn't supported.

詳細については、ALTER DATABASE の SET PARTNER と SET WITNESS、および CREATE ENDPOINT … FOR DATABASE_MIRRORING の説明をご覧ください。For more information, see ALTER DATABASE SET PARTNER and SET WITNESS and CREATE ENDPOINT … FOR DATABASE_MIRRORING.

データベース オプションDatabase options

  • 複数のログ ファイルはサポートされていません。Multiple log files aren't supported.
  • インメモリ オブジェクトは、General Purpose サービス レベルではサポートされていません。In-memory objects aren't supported in the General Purpose service tier.
  • General Purpose インスタンスあたり 280 ファイル (データベースあたり最大 280 ファイル) の制限があります。There's a limit of 280 files per General Purpose instance, which implies a maximum of 280 files per database. General Purpose レベルのデータ ファイルとログ ファイルの両方がこの制限にカウントされます。Both data and log files in the General Purpose tier are counted toward this limit. Business Critical レベルでは、データベースあたり 32,767 ファイルがサポートされますThe Business Critical tier supports 32,767 files per database.
  • filestream データを含むファイル グループをデータベースに含めることはできません。The database can't contain filegroups that contain filestream data. .bak に FILESTREAM データが含まれていると、復元は失敗します。Restore fails if .bak contains FILESTREAM data.
  • すべてのファイルが Azure Blob Storage に配置されます。Every file is placed in Azure Blob storage. ファイルあたりの IO およびスループットは、個々のファイルのサイズによって異なります。IO and throughput per file depend on the size of each individual file.

CREATE DATABASE ステートメントCREATE DATABASE statement

次の制限事項が CREATE DATABASE に適用されます。The following limitations apply to CREATE DATABASE:

  • ファイルおよびファイル グループは定義できません。Files and filegroups can't be defined.

  • CONTAINMENT オプションはサポートされていません。The CONTAINMENT option isn't supported.

  • WITH オプションはサポートされていません。WITH options aren't supported.

    ヒント

    対処法として、CREATE DATABASE の後に ALTER DATABASE を使用して、ファイルの追加またはコンテインメントの設定を行うデータベース オプションを設定します。As a workaround, use ALTER DATABASE after CREATE DATABASE to set database options to add files or to set containment.

  • FOR ATTACH オプションはサポートされていません。The FOR ATTACH option isn't supported.

  • AS SNAPSHOT OF オプションはサポートされていません。The AS SNAPSHOT OF option isn't supported.

詳細については、CREATE DATABASE に関する記事をご覧ください。For more information, see CREATE DATABASE.

ALTER DATABASE ステートメントALTER DATABASE statement

ファイルの一部のプロパティは設定または変更できません。Some file properties can't be set or changed:

  • ALTER DATABASE ADD FILE (FILENAME='path') T-SQL ステートメントでは、ファイル パスは指定できません。A file path can't be specified in the ALTER DATABASE ADD FILE (FILENAME='path') T-SQL statement. ファイルはマネージド インスタンスによって自動的に配置されるため、スクリプトから FILENAME を削除します。Remove FILENAME from the script because a managed instance automatically places the files.
  • ALTER DATABASE ステートメントを使用してファイル名を変更することはできません。A file name can't be changed by using the ALTER DATABASE statement.

次のオプションは既定で設定されており、変更することはできません。The following options are set by default and can't be changed:

  • MULTI_USER
  • ENABLE_BROKER ON
  • AUTO_CLOSE OFF

次のオプションは変更できません。The following options can't be modified:

  • AUTO_CLOSE
  • AUTOMATIC_TUNING(CREATE_INDEX=ON|OFF)
  • AUTOMATIC_TUNING(DROP_INDEX=ON|OFF)
  • DISABLE_BROKER
  • EMERGENCY
  • ENABLE_BROKER
  • FILESTREAM
  • HADR
  • NEW_BROKER
  • OFFLINE
  • PAGE_VERIFY
  • PARTNER
  • READ_ONLY
  • RECOVERY BULK_LOGGED
  • RECOVERY_SIMPLE
  • REMOTE_DATA_ARCHIVE
  • RESTRICTED_USER
  • SINGLE_USER
  • WITNESS

詳細については、ALTER DATABASE に関する記事をご覧ください。For more information, see ALTER DATABASE.

SQL Server エージェントSQL Server Agent

  • SQL Server エージェントの設定は読み取り専用です。SQL Server Agent settings are read only. sp_set_agent_properties プロシージャは、Managed Instance ではサポートされていません。The procedure sp_set_agent_properties isn't supported in Managed Instance.
  • [ジョブ]Jobs
    • T-SQL ジョブ ステップがサポートされています。T-SQL job steps are supported.
    • 次のレプリケーション ジョブがサポートされています。The following replication jobs are supported:
      • トランザクション ログ リーダーTransaction-log reader
      • スナップショットSnapshot
      • ディストリビューターDistributor
    • SSIS ジョブ ステップがサポートされています。SSIS job steps are supported.
    • 他の種類のジョブ ステップは現在サポートされていません。Other types of job steps aren't currently supported:
      • マージ レプリケーション ジョブ ステップはサポートされていません。The merge replication job step isn't supported.
      • キュー リーダーはサポートされていません。Queue Reader isn't supported.
      • コマンド シェルはまだサポートされていません。Command shell isn't yet supported.
    • Managed Instance は、外部リソース (例: robocopy を介したネットワーク共有) にはアクセスできません。Managed instances can't access external resources, for example, network shares via robocopy.
    • SQL Server Analysis Services はサポートされていません。SQL Server Analysis Services aren't supported.
  • 通知は部分的にサポートされています。Notifications are partially supported.
  • 電子メール通知がサポートされていますが、データベース メール プロファイルを構成する必要があります。Email notification is supported, although it requires that you configure a Database Mail profile. SQL Server エージェントで使用できるデータベース メール プロファイルは 1 つだけであり、AzureManagedInstance_dbmail_profile という名前である必要があります。SQL Server Agent can use only one Database Mail profile, and it must be called AzureManagedInstance_dbmail_profile.
    • Pager はサポートされていません。Pager isn't supported.
    • NetSend はサポートされていません。NetSend isn't supported.
    • アラートはまだサポートされていません。Alerts aren't yet supported.
    • プロキシはサポートされていません。Proxies aren't supported.
  • EventLog はサポートされていません。EventLog isn't supported.

次の機能は現在サポートされていませんが、今後有効になります。The following features currently aren't supported but will be enabled in the future:

  • プロキシProxies
  • アイドル状態の CPU でのジョブのスケジューリングScheduling jobs on an idle CPU
  • エージェントの有効化または無効化Enabling or disabling an Agent
  • アラートAlerts

SQL Server エージェントについては、「SQL Server エージェント」をご覧ください。For information about SQL Server Agent, see SQL Server Agent.

テーブルTables

次のテーブルはサポートされていません。The following tables aren't supported:

  • FILESTREAM
  • FILETABLE
  • EXTERNAL TABLE
  • MEMORY_OPTIMIZED

テーブルの作成および変更方法については、CREATE TABLE に関する記事および ALTER TABLE に関する記事をご覧ください。For information about how to create and alter tables, see CREATE TABLE and ALTER TABLE.

機能Functionalities

一括挿入/openrowsetBulk insert / openrowset

Managed Instance はファイル共有や Windows フォルダーにアクセスできないため、ファイルは Azure BLOB ストレージからインポートする必要があります。A managed instance can't access file shares and Windows folders, so the files must be imported from Azure Blob storage:

  • が、Azure BLOB ストレージからファイルをインポートしている間、BULK INSERT コマンドで DATASOURCE が必要です。DATASOURCE is required in the BULK INSERT command while you import files from Azure Blob storage. BULK INSERT に関する記事をご覧ください。See BULK INSERT.
  • Azure BLOB ストレージからのファイルの内容を読み取る場合、OPENROWSET 関数で DATASOURCE が必要です。DATASOURCE is required in the OPENROWSET function when you read the content of a file from Azure Blob storage. OPENROWSET に関する記事をご覧ください。See OPENROWSET.

CLRCLR

Managed Instance はファイル共有と Windows フォルダーにはアクセスできないので、次の制約が適用されます。A managed instance can't access file shares and Windows folders, so the following constraints apply:

DBCCDBCC

SQL Server で有効になっている、ドキュメントに記載されていない DBCC ステートメントは、Managed Instance ではサポートされていません。Undocumented DBCC statements that are enabled in SQL Server aren't supported in managed instances.

  • Trace flags はサポートされていません。Trace flags aren't supported. トレース フラグに関する記事をご覧ください。See Trace flags.
  • DBCC TRACEOFF はサポートされていません。DBCC TRACEOFF isn't supported. DBCC TRACEOFF に関する記事をご覧ください。See DBCC TRACEOFF.
  • DBCC TRACEON はサポートされていません。DBCC TRACEON isn't supported. DBCC TRACEON に関する記事をご覧ください。See DBCC TRACEON.

分散トランザクションDistributed transactions

MSDTC もエラスティック トランザクションも現在、Managed Instance ではサポートされていません。MSDTC and elastic transactions currently aren't supported in managed instances.

拡張イベントExtended Events

拡張イベント (XEvents) の一部の Windows 固有のターゲットはサポートされていません。Some Windows-specific targets for Extended Events (XEvents) aren't supported:

  • etw_classic_sync ターゲットはサポートされていません。The etw_classic_sync target isn't supported. Azure BLOB ストレージに .xel ファイルを保存します。Store .xel files in Azure Blob storage. etw_classic_sync ターゲット」をご覧ください。See etw_classic_sync target.
  • event_file ターゲットはサポートされていません。The event_file target isn't supported. Azure BLOB ストレージに .xel ファイルを保存します。Store .xel files in Azure Blob storage. event_file ターゲット」をご覧ください。See event_file target.

外部ライブラリExternal libraries

In-Database R および In-Database Python 外部ライブラリはまだサポートされていません。In-database R and Python, external libraries aren't yet supported. SQL Server Machine Learning Services」をご覧ください。See SQL Server Machine Learning Services.

Filestream と FileTableFilestream and FileTable

  • filestream データはサポートされていません。Filestream data isn't supported.
  • FILESTREAM データを含むファイル グループをデータベースに含めることはできません。The database can't contain filegroups with FILESTREAM data.
  • FILETABLE はサポートされていません。FILETABLE isn't supported.
  • テーブルに FILESTREAM 型を含めることはできません。Tables can't have FILESTREAM types.
  • 次の関数はサポートされていません。The following functions aren't supported:
    • GetPathLocator()
    • GET_FILESTREAM_TRANSACTION_CONTEXT()
    • PathName()
    • GetFileNamespacePat)
    • FileTableRootPath()

詳細については、FILESTREAM に関する記事、および FileTables に関する記事をご覧ください。For more information, see FILESTREAM and FileTables.

セマンティック検索はサポートされていません。Semantic Search isn't supported.

リンク サーバーLinked servers

マネージド インスタンスのリンク サーバーがサポートするターゲットの数は限られています。Linked servers in Managed Instances support a limited number of targets:

  • サポートされるターゲットは SQL Server と SQL Database です。Supported targets are SQL Server and SQL Database.
  • サポートされていないターゲットは、ファイル、Analysis Services、他の RDBMS です。Targets that aren't supported are files, Analysis Services, and other RDBMS.

OperationsOperations

  • クロス インスタンス書き込みトランザクションはサポートされていません。Cross-instance write transactions aren't supported.
  • リンク サーバーの削除で sp_dropserver がサポートされています。sp_dropserver is supported for dropping a linked server. sp_dropserver に関する記事をご覧ください。See sp_dropserver.
  • SQL Server インスタンスでのみ、OPENROWSET 関数を使用してクエリを実行できます。The OPENROWSET function can be used to execute queries only on SQL Server instances. これらは、マネージド、オンプレミス、仮想マシンのいずれかで配置できます。They can be either managed, on-premises, or in virtual machines. OPENROWSET に関する記事をご覧ください。See OPENROWSET.
  • SQL Server インスタンスでのみ、OPENDATASOURCE 関数を使用してクエリを実行できます。The OPENDATASOURCE function can be used to execute queries only on SQL Server instances. これらは、マネージド、オンプレミス、仮想マシンのいずれかで配置できます。They can be either managed, on-premises, or in virtual machines. プロバイダーとしてサポートされる値は、SQLNCLISQLNCLI11SQLOLEDB だけです。Only the SQLNCLI, SQLNCLI11, and SQLOLEDB values are supported as a provider. 例: SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2012.HumanResources.EmployeeAn example is SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2012.HumanResources.Employee. OPENDATASOURCE に関する記事をご覧ください。See OPENDATASOURCE.

PolyBasePolyBase

HDFS または Azure BLOB ストレージ内のファイルを参照する外部テーブルはサポートされていません。External tables that reference the files in HDFS or Azure Blob storage aren't supported. PolyBase については、PolyBase に関する記事をご覧ください。For information about PolyBase, see PolyBase.

レプリケーションReplication

マネージド インスタンスのパブリック プレビューで、レプリケーションを使用できます。Replication is available for public preview for Managed Instance. レプリケーションについては、「SQL Server のレプリケーション」をご覧ください。For information about replication, see SQL Server replication.

RESTORE ステートメントRESTORE statement

  • サポートされている構文:Supported syntax:
    • RESTORE DATABASE
    • RESTORE FILELISTONLY ONLY
    • RESTORE HEADER ONLY
    • RESTORE LABELONLY ONLY
    • RESTORE VERIFYONLY ONLY
  • サポートされていない構文:Unsupported syntax:
    • RESTORE LOG ONLY
    • RESTORE REWINDONLY ONLY
  • ソース:Source:
    • FROM URL (Azure BLOB ストレージ) が、サポートされている唯一のオプションです。FROM URL (Azure Blob storage) is the only supported option.
    • FROM DISK/TAPE/バックアップ デバイスはサポートされていません。FROM DISK/TAPE/backup device isn't supported.
    • バックアップ セットはサポートされていません。Backup sets aren't supported.
  • WITH オプションはサポートされていません (DIFFERENTIALSTATS などは使用不可)。WITH options aren't supported, such as no DIFFERENTIAL or STATS.
  • ASYNC RESTORE:クライアント接続が切断されても、復元は続行されます。ASYNC RESTORE: Restore continues even if the client connection breaks. 接続が破棄された場合は、sys.dm_operation_status ビューで復元操作とデータベースの CREATE 操作および DROP 操作の状態を確認できます。If your connection is dropped, you can check the sys.dm_operation_status view for the status of a restore operation, and for a CREATE and DROP database. sys.dm_operation_status に関する記事をご覧ください。See sys.dm_operation_status.

次のデータベース オプションを設定またはオーバーライドします。これらを後で変更することはできません。The following database options are set or overridden and can't be changed later:

  • NEW_BROKER (.bak ファイルでブローカーが有効になっていない場合)。NEW_BROKER if the broker isn't enabled in the .bak file.
  • ENABLE_BROKER (.bak ファイルでブローカーが有効になっていない場合)。ENABLE_BROKER if the broker isn't enabled in the .bak file.
  • AUTO_CLOSE=OFF (.bak ファイル内のデータベースに AUTO_CLOSE=ON が設定されている場合)。AUTO_CLOSE=OFF if a database in the .bak file has AUTO_CLOSE=ON.
  • RECOVERY FULL (.bak ファイル内のデータベースが SIMPLE または BULK_LOGGED 回復モードの場合)。RECOVERY FULL if a database in the .bak file has SIMPLE or BULK_LOGGED recovery mode.
  • メモリ最適化ファイル グループが追加され、(ソースの .bak ファイルに含まれていなかった場合) XTP という名前が付けられます。A memory-optimized filegroup is added and called XTP if it wasn't in the source .bak file.
  • 既存のメモリ最適化ファイル グループの名前が XTP に変更されます。Any existing memory-optimized filegroup is renamed to XTP.
  • SINGLE_USER および RESTRICTED_USER のオプションは、MULTI_USER に変換されます。SINGLE_USER and RESTRICTED_USER options are converted to MULTI_USER.

制限事項:Limitations:

  • .BAK ファイルに複数のバックアップ セットが含まれている場合、復元できません。.BAK files that contain multiple backup sets can't be restored.
  • .BAK ファイルに複数のログ ファイルが含まれている場合、復元できません。.BAK files that contain multiple log files can't be restored.
  • .bak に FILESTREAM データが含まれていると、復元は失敗します。Restore fails if .bak contains FILESTREAM data.
  • アクティブなインメモリ オブジェクトが存在するデータベースが含まれたバックアップは、General Purpose インスタンスで復元することはできません。Backups that contain databases that have active in-memory objects can't be restored on a General Purpose instance. RESTORE ステートメントについては、RESTORE ステートメントに関する記事をご覧ください。For information about restore statements, see RESTORE statements.

Service BrokerService broker

クロス インスタンス Service Broker はサポートされていません。Cross-instance service broker isn't supported:

  • sys.routes:前提条件として sys.routes からアドレスを選択する必要があります。sys.routes: As a prerequisite, you must select the address from sys.routes. アドレスは、各ルートで LOCAL である必要があります。The address must be LOCAL on every route. sys.routes に関する記事をご覧ください。See sys.routes.
  • CREATE ROUTE:LOCAL 以外の ADDRESSCREATE ROUTE を使用することはできません。CREATE ROUTE: You can't use CREATE ROUTE with ADDRESS other than LOCAL. CREATE ROUTE に関する記事をご覧ください。See CREATE ROUTE.
  • ALTER ROUTE:LOCAL 以外の ADDRESSALTER ROUTE を使用することはできません。ALTER ROUTE: You can't use ALTER ROUTE with ADDRESS other than LOCAL. ALTER ROUTE に関する記事をご覧ください。See ALTER ROUTE.

ストアド プロシージャ、関数、トリガーStored procedures, functions, and triggers

  • NATIVE_COMPILATION は、General Purpose レベルではサポートされていません。NATIVE_COMPILATION isn't supported in the General Purpose tier.
  • sp_configure の次のオプションはサポートされていません。The following sp_configure options aren't supported:
    • allow polybase export
    • allow updates
    • filestream_access_level
    • remote data archive
    • remote proc trans
  • sp_execute_external_scripts はサポートされていません。sp_execute_external_scripts isn't supported. sp_execute_external_scripts に関するセクションをご覧ください。See sp_execute_external_scripts.
  • xp_cmdshell はサポートされていません。xp_cmdshell isn't supported. xp_cmdshell に関する記事をご覧ください。See xp_cmdshell.
  • Extended stored procedures はサポートされておらず、これには sp_addextendedproc  および sp_dropextendedproc が含まれます。Extended stored procedures aren't supported, which includes sp_addextendedproc and sp_dropextendedproc. 拡張ストアド プロシージャに関する記事をご覧ください。See Extended stored procedures.
  • sp_attach_dbsp_attach_single_file_dbsp_detach_db はサポートされていません。sp_attach_db, sp_attach_single_file_db, and sp_detach_db aren't supported. sp_attach_dbsp_attach_single_file_dbsp_detach_db に関する各記事をご覧ください。See sp_attach_db, sp_attach_single_file_db, and sp_detach_db.

環境制約Environmet constraints

SubnetSubnet

VNetVNET

  • VNet はリソース モデルを使用してデプロイできます。VNet のクラシック モードはサポートされていません。VNet can be deployed using Resource Model - Classic Model for VNet is not supported.
  • VNet がグローバル ピアリングを使用して接続されている場合、App Service Environment、ロジック アプリ、Managed Instance (geo レプリケーション、トランザクション レプリケーション、またはリンクされたサーバー経由で使用) など、一部のサービスでは、さまざまなリージョンにある Managed Instance にアクセスできません。Some services such as App Service Environments, Logic apps, and Managed Instances (used for Geo-replication, Transactional replication, or via linked servers) cannot access Managed Instances in different regions if their VNets are connected using global peering. ExpressRoute、または VNet ゲートウェイ経由の VNet 対 VNet を介してこのようなリソースに接続できます。You can connect to these resource via ExpressRoute or VNet-to-VNet through VNet Gateways.

動作の変更Behavior changes

次の変数、関数、ビューは異なる結果を返します。The following variables, functions, and views return different results:

  • SERVERPROPERTY('EngineEdition') は値 8 を返します。SERVERPROPERTY('EngineEdition') returns the value 8. このプロパティは、マネージド インスタンスを一意に識別します。This property uniquely identifies a managed instance. SERVERPROPERTY に関する記事をご覧ください。See SERVERPROPERTY.
  • SERVERPROPERTY('InstanceName') は NULL を返します。これは SQL Server に関して存在するインスタンスの概念が、Managed Instance には該当しないためです。SERVERPROPERTY('InstanceName') returns NULL because the concept of instance as it exists for SQL Server doesn't apply to a managed instance. SERVERPROPERTY('InstanceName') に関する説明をご覧ください。See SERVERPROPERTY('InstanceName').
  • @@SERVERNAME は、"接続可能な" 完全 DNS 名を返します (例: my-managed-instance.wcus17662feb9ce98.database.windows.net)。@@SERVERNAME returns a full DNS "connectable" name, for example, my-managed-instance.wcus17662feb9ce98.database.windows.net. @@SERVERNAME に関する記事をご覧ください。See @@SERVERNAME.
  • SYS.SERVERS は、"name" プロパティと "data_source" プロパティを表す myinstance.domain.database.windows.net のような、"接続可能な" 完全 DNS 名を返します。SYS.SERVERS returns a full DNS "connectable" name, such as myinstance.domain.database.windows.net for the properties "name" and "data_source." SYS.SERVERS に関する記事をご覧ください。See SYS.SERVERS.
  • @@SERVICENAME は NULL を返します。これは SQL Server に関して存在するサービスの概念が、Managed Instance には該当しないためです。@@SERVICENAME returns NULL because the concept of service as it exists for SQL Server doesn't apply to a managed instance. @@SERVICENAME に関する記事をご覧ください。See @@SERVICENAME.
  • SUSER_ID がサポートされています。SUSER_ID is supported. Azure AD ログインが sys.syslogins に含まれていない場合は、NULL を返します。It returns NULL if the Azure AD login isn't in sys.syslogins. SUSER_ID に関する記事をご覧ください。See SUSER_ID.
  • SUSER_SID はサポートされていません。SUSER_SID isn't supported. 正しくないデータが返されます。これは既知の一時的な問題です。The wrong data is returned, which is a temporary known issue. SUSER_SID に関する記事をご覧ください。See SUSER_SID.

既知の問題と制限事項Known issues and limitations

TEMPDB のサイズTEMPDB size

tempdb の最大ファイル サイズは、General Purpose レベルではコアあたり 24 GB より大きくすることはできません。The maximum file size of tempdb can't be greater than 24 GB per core on a General Purpose tier. Business Critical レベルでは、tempdb の最大サイズはインスタンス ストレージ サイズで制限されます。The maximum tempdb size on a Business Critical tier is limited with the instance storage size. tempdb は常に 12 個のデータ ファイルに分割されます。The tempdb database is always split into 12 data files. ファイルあたりのこの最大サイズは変更できず、tempdb に新しいファイルを追加することはできません。This maximum size per file can't be changed, and new files cannot be added to tempdb. 一部のクエリで tempdb のサイズがコアあたり 24 GB を超える必要がある場合は、エラーが返されます。Some queries might return an error if they need more than 24 GB per core in tempdb. tempdb は、インスタンスが開始またはフェールオーバーしたときに、常に空のデータベースとして再作成され、tempdb で行われたどの変更も保持されません。tempdb is always re-created as an empty database when the instance start or fail-over and any change made in tempdb will not be preserved.

包含データベースを復元できないCan't restore contained database

Managed Instance は包含データベースを復元できません。Managed Instance can't restore contained databases. 既存のデータベースのポイントインタイム リストアは、Managed Instance には機能しません。Point-in-time restore of the existing contained databases doesn't work on Managed Instance. この問題は、まもなく解決されます。This issue will be resolved soon. その間、Managed Instance に配置されるデータベースから、包含オプションを削除することをお勧めします。In the meantime, we recommend that you remove the containment option from your databases that are placed on Managed Instance. 運用データベースの包含オプションを使用しないでください。Don't use the containment option for the production databases.

小さなデータベース ファイルによる記憶域の超過Exceeding storage space with small database files

インスタンスが Azure ストレージの制限に達する可能性があるため、CREATE DATABASEALTER DATABASE ADD FILE、および RESTORE DATABASE ステートメントが失敗することがあります。CREATE DATABASE, ALTER DATABASE ADD FILE, and RESTORE DATABASE statements might fail because the instance can reach the Azure Storage limit.

各 General Purpose Managed Instance には、Azure Premium ディスク領域用に予約された 最大 35 TB のストレージがあります。Each General Purpose managed instance has up to 35 TB of storage reserved for Azure Premium Disk space. 各データベース ファイルは、個別の物理ディスクに配置されます。Each database file is placed on a separate physical disk. ディスク サイズとして、128 GB、256 GB、512 GB、1 TB、4 TB のいずれかを指定できます。Disk sizes can be 128 GB, 256 GB, 512 GB, 1 TB, or 4 TB. ディスク上の未使用領域については請求されませんが、Azure Premium ディスクのサイズ合計が 35 TB を超えることはできません。Unused space on the disk isn't charged, but the total sum of Azure Premium Disk sizes can't exceed 35 TB. 場合によっては、内部の断片化のために、合計で 8 TB を必要としない Managed Instance が、記憶域のサイズに関する 35 TB の Azure での制限を超える場合があります。In some cases, a managed instance that doesn't need 8 TB in total might exceed the 35 TB Azure limit on storage size due to internal fragmentation.

たとえば、General Purpose Managed Instance には、4 TB のディスクに配置されているサイズが 1.2 TB のファイルが 1 つあります。For example, a General Purpose managed instance might have one file that's 1.2 TB in size placed on a 4-TB disk. また、個別の 128 GB ディスクに配置される、サイズがそれぞれ 1 GB のファイルが 248 あります。It also might have 248 files that are each 1 GB in size that are placed on separate 128-GB disks. 次の点に注意してください。In this example:

  • 割り当てられるディスク ストレージの合計サイズは、1 x 4 TB + 248 x 128 GB = 35 TB となります。The total allocated disk storage size is 1 x 4 TB + 248 x 128 GB = 35 TB.
  • インスタンス上のデータベースの予約済み領域の合計は、1 x 1.2 TB + 248 x 1 GB = 1.4 TB となります。The total reserved space for databases on the instance is 1 x 1.2 TB + 248 x 1 GB = 1.4 TB.

この例は、特定の状況下では、特殊なファイルの配分のために、Managed Instance が、想定していなかったアタッチ済み Azure Premium ディスクに予約されている 35 TB の制限に到達する可能性があることを示しています。This example illustrates that under certain circumstances, due to a specific distribution of files, a managed instance might reach the 35-TB limit that's reserved for an attached Azure Premium Disk when you might not expect it to.

この例では既存のデータベースは引き続き機能し、新しいファイルを追加しない限りは問題なく拡張できます。In this example, existing databases continue to work and can grow without any problem as long as new files aren't added. すべてのデータベースの合計サイズがインスタンス サイズの上限に到達しない場合でも、新しいディスク ドライブ用の十分な領域がないため、新しいデータベースの作成や復元はできません。New databases can't be created or restored because there isn't enough space for new disk drives, even if the total size of all databases doesn't reach the instance size limit. その場合に返されるエラーは明確ではありません。The error that's returned in that case isn't clear.

システム ビューを使用して、残りのファイルの数を特定できます。You can identify the number of remaining files by using system views. この制限に達した場合は、DBCC SHRINKFILE ステートメントを使用して、より小さなファイルをいくつか空にして削除してみるか、この制限のない Business Critical レベルに切り替えてください。If you reach this limit, try to empty and delete some of the smaller files by using the DBCC SHRINKFILE statement or switch to the Business Critical tier, which doesn't have this limit.

データベースの復元時の SAS キーの構成が正しくないIncorrect configuration of the SAS key during database restore

.bak ファイルを読み取る RESTORE DATABASE は、CREDENTIAL の Shared Access Signature が正しくない場合、.bak ファイルの読み取りの再試行を繰り返し、長時間経過した後にエラーを返すことがあります。RESTORE DATABASE that reads the .bak file might be constantly retrying to read the .bak file and return an error after a long period of time if the shared access signature in CREDENTIAL is incorrect. データベースを復元する前に RESTORE HEADERONLY を実行して、SAS キーが正しいことを確認します。Execute RESTORE HEADERONLY before you restore a database to be sure that the SAS key is correct. Azure portal を使用して生成された SAS キーから、先頭の ? を必ず削除してください。Make sure that you remove the leading ? from the SAS key that's generated by using the Azure portal.

ツールTooling

SQL Server Management Studio と SQL Server Data Tools には、Managed Instance にアクセスする際に問題がある可能性があります。SQL Server Management Studio and SQL Server Data Tools might have some issues while they access a managed instance.

  • 現在のところ、SQL Server Data Tools で Azure AD サーバー プリンシパル (ログイン) とユーザー (パブリック プレビュー) を使用することはできません。Using Azure AD server principals (logins) and users (public preview) with SQL Server Data Tools currently isn't supported.
  • Azure AD サーバー プリンシパル (ログイン) とユーザー (パブリック プレビュー) のスクリプトは、SQL Server Management Studio ではサポートされていません。Scripting for Azure AD server principals (logins) and users (public preview) isn't supported in SQL Server Management Studio.

一部のビュー、ログ、およびメッセージでの不正なデータベース名Incorrect database names in some views, logs, and messages

複数のシステム ビュー、パフォーマンス カウンター、エラー メッセージ、XEvent、およびエラー ログ エントリで、実際のデータベース名ではなく GUID データベース識別子が表示されています。Several system views, performance counters, error messages, XEvents, and error log entries display GUID database identifiers instead of the actual database names. 将来、実際のデータベース名に置き換えられるため、これらの GUID 識別子には依存しないでください。Don't rely on these GUID identifiers because they're replaced with actual database names in the future.

データベース メールDatabase mail

sp_send_db_mail プロシージャの @query パラメーターは機能しません。The @query parameter in the sp_send_db_mail procedure doesn't work.

データベース メール プロファイルDatabase Mail profile

SQL Server エージェントによって使用されるデータベース メールプロファイルは、AzureManagedInstance_dbmail_profile という名前である必要があります。The Database Mail profile used by the SQL Server Agent must be called AzureManagedInstance_dbmail_profile. その他のデータベース メール プロファイルの名前に関する制限はありません。There are no restrictions for other Database Mail profile names.

エラー ログが非永続的であるError logs aren't persisted

Managed Instance で利用可能なエラー ログは永続的ではなく、このログのサイズは、最大ストレージ上限には含まれません。Error logs that are available in Managed Instance aren't persisted, and their size isn't included in the maximum storage limit. フェールオーバーが発生した場合、エラー ログは自動的に消去される可能性があります。Error logs might be automatically erased if failover occurs.

エラー ログが詳細であるError logs are verbose

Managed Instance では、エラー ログに詳細情報が書き込まれ、その多くは関連のない内容です。A managed instance places verbose information in error logs, and much of it isn't relevant. エラー ログの情報量は将来、減らされる予定です。The amount of information in error logs will decrease in the future.

対処法: カスタムの手順を使用して、関連のない項目をフィルターで除外するエラー ログを読み取ります。Workaround: Use a custom procedure to read error logs that filters out some irrelevant entries. 詳細については、Managed Instance - sp_readmierrorlog に関する記事を参照してください。For more information, see Managed Instance – sp_readmierrorlog.

同じインスタンス内にある 2 つのデータベース上でトランザクション スコープがサポートされないTransaction scope on two databases within the same instance isn't supported

TransactionScope クラス (.NET) は、同じトランザクション スコープ下では、同一インスタンス内にある 2 つのデータベースに対して 2 つのクエリが送信された場合に機能しません。The TransactionScope class in .NET doesn't work if two queries are sent to two databases within the same instance under the same transaction scope:

using (var scope = new TransactionScope())
{
    using (var conn1 = new SqlConnection("Server=quickstartbmi.neu15011648751ff.database.windows.net;Database=b;User ID=myuser;Password=mypassword;Encrypt=true"))
    {
        conn1.Open();
        SqlCommand cmd1 = conn1.CreateCommand();
        cmd1.CommandText = string.Format("insert into T1 values(1)");
        cmd1.ExecuteNonQuery();
    }

    using (var conn2 = new SqlConnection("Server=quickstartbmi.neu15011648751ff.database.windows.net;Database=b;User ID=myuser;Password=mypassword;Encrypt=true"))
    {
        conn2.Open();
        var cmd2 = conn2.CreateCommand();
        cmd2.CommandText = string.Format("insert into b.dbo.T2 values(2)");        cmd2.ExecuteNonQuery();
    }

    scope.Complete();
}

このコードは同一インスタンス内でデータを操作しますが、MSDTC を必要とします。Although this code works with data within the same instance, it required MSDTC.

対処法: 2 つの接続を使用する代わりに SqlConnection.ChangeDatabase(String) を使って、接続コンテキスト内で他のデータベースを使用します。Workaround: Use SqlConnection.ChangeDatabase(String) to use another database in a connection context instead of using two connections.

CLR モジュールとリンク サーバーでローカル IP アドレスを参照できないことがあるCLR modules and linked servers sometimes can't reference a local IP address

Managed Instance に配置された CLR モジュールと、現在のインスタンスを参照しているリンク サーバーまたは分散クエリでは、ローカル インスタンスの IP を解決できないことがあります。CLR modules placed in a managed instance and linked servers or distributed queries that reference a current instance sometimes can't resolve the IP of a local instance. このエラーは一時的な問題です。This error is a transient issue.

対処法: 可能であれば、CLR モジュールでコンテキスト接続を使用します。Workaround: Use context connections in a CLR module if possible.

サービス管理キーを使用して TDE で暗号化されたデータベースでは、ユーザーが開始したバックアップはサポートされないTDE-encrypted databases with a service-managed key don't support user-initiated backups

サービス管理 Transparent Data Encryption (TDE) を使用して暗号化されたデータベースでは、BACKUP DATABASE ... WITH COPY_ONLY は実行できません。You can't execute BACKUP DATABASE ... WITH COPY_ONLY on a database that's encrypted with service-managed Transparent Data Encryption (TDE). サービス管理 TDE では、バックアップを内部の TDE のキーで暗号化するように強制します。Service-managed TDE forces backups to be encrypted with an internal TDE key. キーはエクスポートできないので、バックアップを復元することはできません。The key can't be exported, so you can't restore the backup.

対処法: 自動バックアップとポイントインタイム リストアを使用するか、代わりに顧客管理 (BYOK) TDE を使用します。Workaround: Use automatic backups and point-in-time restore, or use customer-managed (BYOK) TDE instead. また、データベースで暗号化を無効にすることができます。You also can disable encryption on the database.

次の手順Next steps