対象者:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
アナリティクスプラットフォームシステム(PDW)
Microsoft FabricにおけるSQLデータベース
データベースの資格情報を作成します。 データベースの認証情報はサーバーのログインやデータベースユーザーにマッピングされていません。 データベースはアクセスが必要な操作を行う際に、その認証情報を使って外部リソースにアクセスします。
Syntax
CREATE DATABASE SCOPED CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
[ , SECRET = 'secret' ]
[ ; ]
Arguments
credential_name
作成するデータベース スコープの資格情報の名前を指定します。
credential_name 番号 (#) 記号で始めることはできません。 システム資格情報は、 ##で始まります。
credential_nameの最大長は 128 文字です。
恒等 = 'identity_name'
サーバー外に接続時に使用するアカウント名を指定します。
共有キーを使用して Azure Blob Storage または Azure Data Lake Storage からファイルをインポートするには、ID 名が
SHARED ACCESS SIGNATUREである必要があります。 Shared Access Signature の詳細については、「Shared Access Signatures (SAS) の使用」をご覧ください。 Shared Access Signature 用にIDENTITY = SHARED ACCESS SIGNATUREを使うだけです。マネージド ID を使用して Azure Blob Storage からファイルをインポートするには、ID 名が
MANAGED IDENTITYである必要があります。Kerberos(Windows Active DirectoryまたはMIT KDC)を使う際は、
IDENTITYの引数にドメイン名を使わないでください。 アカウント名にしておけば問題ありません。SQL Serverインスタンスでは、ストレージアクセスキーを
SECRETとしてデータベーススコープ認証情報を作成すると、IDENTITYは無視されます。WITH IDENTITYAzure Blobストレージのコンテナが匿名アクセスが有効であれば必須ではありません。OPENROWSET BULKを使用して Azure Blob Storage にクエリを実行する例については、「Azure Blob Storage に格納されているファイルからテーブルにインポートする」を参照してください。SQL Server 2022 (16.x) 以降のバージョンでは、REST-API コネクタによって HADOOP が置き換えられます。 Azure Blob Storage と Azure Data Lake Gen 2 の場合、サポートされている認証方法は Shared Access Signature のみです。 詳しくは、「CREATE EXTERNAL DATA SOURCE」をご覧ください。
SQL Server 2019 (15.x) では、Kerberos 認証をサポートする PolyBase 外部データ ソースは Hadoop のみです。 他のすべての外部データ ソース (SQL Server、Oracle、Teradata、MongoDB、汎用 ODBC) は、基本認証のみをサポートします。
Azure Synapse AnalyticsのSQLプールには以下の注意事項があります:
- Azure Synapse Analyticsにデータを読み込むには、
IDENTITYの有効な値を任意に使用できます。 - Azure Synapse Analytics サーバーレス SQL プールでは、データベース スコープの資格情報で、ワークスペースのマネージド ID、サービス プリンシパル名、または Shared Access Signature (SAS) トークンを指定できます。 ユーザーサインインによる Microsoft Entraパススルー認証によるユーザーIDによるアクセスは、データベーススコープ認証情報で可能であり、公開ストレージへの匿名アクセスも可能です。 詳しくは、「サポートされているストレージ承認の種類」を参照してください。
- Azure Synapse Analytics 専用 SQL プールでは、データベース スコープの資格情報で、Shared Access Signature (SAS) トークン、カスタム アプリケーション ID、ワークスペースマネージド ID、またはストレージ アクセス キーを指定できます。
- Azure Synapse Analyticsにデータを読み込むには、
| Authentication | T-SQL | Supported | Notes |
|---|---|---|---|
| 共有アクセス署名(SAS) | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'secret'; |
SQL Server 2022 以降、Azure SQL Managed Instance、Azure Synapse Analytics、Azure SQL Database | |
| マネージド ID | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'MANAGED IDENTITY'; |
Azure SQL Database、Azure SQL Managed Instance、AZURE Arc を使用した SQL Server 2025 | Azure Arcを有効にするには、Azure Arcで有効化されたSQL Serverの管理されたアイデンティティをご覧ください |
| ユーザー ID を使用した Microsoft Entra パススルー認証 | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'USER IDENTITY'; |
|
Azure Synapseでは、Microsoft Entraパススルー認証によるUser sign-inを参照してください |
| S3 アクセス キーの基本認証 | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'S3 ACCESS KEY', SECRET = '<accesskey>:<secretkey>'; |
SQL Server 2022以降のバージョン | |
| ODBC データ ソースまたは Kerberos (MIT KDC) |
CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>'; |
SQL Server 2019 以降のバージョン |
1 Microsoft FabricのSQLデータベースでは、データベーススコープ認証情報を指定していない場合、認証方法はデフォルトで「USER IDENTITY」となり、Microsoft Entra IDユーザーアカウントをコンテキストとして使用します。
SECRET = 「秘密」
送信の認証に必要なシークレットを指定します。
SECRET は、Azure Blob Storage からファイルをインポートするために必要です。 Azure Blob Storage から Azure Synapse Analytics または Parallel Data Warehouse に読み込むには、シークレットが Azure Storage キーである必要があります。
Warning
SAS キーの値は疑問符 (?) で始まる場合があります。 SAS キーを使用する場合は、先頭の ?を削除します。
Remarks
データベース スコープ資格情報は、SQL Server 外部のリソースへの接続に必要な認証情報を含むレコードです。 通常、資格情報には Windows ユーザーとパスワードが含まれます。
データベース スコープ資格情報内の機密情報を保護するには、データベース マスター キー (DMK) が必要です。 DMK は、データベース スコープ資格情報のシークレットを暗号化する対称キーです。 データベースにDMKが入っている必要がありますが、データベースのスコープ認証情報を作成することはできません。 DMKを強力なパスワードで暗号化してください。 Azure SQL Databaseは、データベーススコープ認証情報の作成やサーバー監査の作成の一環として、強力でランダムに選ばれたパスワードを持つDMKを作成します。
ユーザーは論理 master データベースに DMK を作成できません。 DMKのパスワードはMicrosoftにとって未知であり、作成後に発見されることはありません。 データベーススコープ認証情報を作成する前にDMKを作成しましょう。 詳細については、「CREATE MASTER KEY」を参照してください。
IDENTITYがWindowsユーザーの場合、秘密はパスワードになることがあります。 この秘密はサービスマスターキー(SMK)で暗号化されています。 SMKを再生成すると、その秘密は新しいSMKで再暗号化されます。
PolyBase外部テーブルで使用する共有アクセス署名(SAS)の権限を付与する際は、コンテナとオブジェクトの両方を許可されるリソースタイプとして選択してください。 これらの権限を付与しない場合、外部テーブルにアクセスしようとした際にエラー16535または16561が発生する可能性があります。
データベーススコープ認証情報の詳細については、 sys.database_scoped_credentials カタログビューをご覧ください。
ここでは、データベース スコープ資格情報のアプリケーションをいくつか示します。
SQL Server は、PolyBase を使用するパブリックではない Azure Blob Storage または Kerberos でセキュリティ保護された Hadoop クラスターにアクセスするために、データベース スコープの資格情報を使います。 詳しくは、「CREATE EXTERNAL DATA SOURCE」をご覧ください。
Azure Synapse Analytics は、PolyBase を使用するパブリックではない Azure Blob Storage にアクセスするために、データベース スコープの資格情報を使います。 詳しくは、「CREATE EXTERNAL DATA SOURCE」をご覧ください。 Azure Synapse ストレージ認証の詳細については、「Synapse SQL で外部テーブルを使用する」を参照してください。
SQL Databaseは、複数のデータベースシャード間でのクエリを可能にする エラス ティックなクエリ機能にデータベーススコープ認証情報を使用しています。
SQL Database は、データベース スコープの資格情報を使って、Azure Blob Storage に拡張イベント ファイルを書き込みます。
SQL Database は、エラスティック プールにデータベース スコープ資格情報を使用します。 詳細については、「Elastic pools help you help you manage and scale in Azure SQL Database」をご覧ください。
BULK INSERT と OPENROWSET は、Azure Blob Storageからデータにアクセスするためにデータベースのスコープ認証情報を使用します。 詳細については、「 Azure Blob Storageにおけるデータの一括アクセスの例」をご覧ください。
PolyBaseAzure SQL Managed Instance のデータ仮想化機能を使用して、データベース スコープの資格情報使用します。
BACKUP TO URLやRESTORE FROM URLの場合は、CREATE CREDENTIALを通じてサーバーレベルの認証情報を使ってください。データベースの範囲認証情報を「外部モデルの作成」と組み合わせて使う
Permissions
データベース CONTROL アクセス許可が必要です。
Examples
A. アプリケーションのデータベース スコープ資格情報を作成する
次の例では、AppCred というデータベース スコープ資格情報を作成します。 データベース スコープ資格情報には Windows ユーザー Mary5 とパスワードが含まれます。
もしまだ存在しないDMKを作成してください。 空白のパスワードは使用しないでください。 強力なパスワードを使用してください。
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
データベーススコープ認証情報の作成:
CREATE DATABASE SCOPED CREDENTIAL AppCred
WITH IDENTITY = 'Mary5',
SECRET = '<password>';
B. Shared Access Signature のデータベース スコープ資格情報を作成する
以下の例は、 外部データソースを作成するために使えるデータベースのスコープ認証情報を作成します。 この認証情報は BULK INSERT や OPENROWSET BULKなどのバルク操作を行うことができます。
もしまだ存在しないDMKを作成してください。 空白のパスワードは使用しないでください。 強力なパスワードを使用してください。
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
データベース スコープ資格情報を作成します。
<key>を適切な値に置き換えます。
CREATE DATABASE SCOPED CREDENTIAL MyCredentials
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '<key>';
C. Azure Data Lake Store への PolyBase 接続のデータベース スコープ資格情報を作成する
次の例では、Azure Synapse Analytics で PolyBase によって使用できる外部データ ソースの作成に使用できるデータベース スコープ資格情報を作成します。
Azure Data Lake Storeはサービス間認証にMicrosoft Entraアプリケーションを使用しています。
Microsoft Entra アプリケーションを作成し データベース スコープの資格情報を作成する前に、client_id、OAuth_2.0_Token_EndPoint、およびキーを文書化します。
もしまだ存在しないDMKを作成してください。 空白のパスワードは使用しないでください。 強力なパスワードを使用してください。
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
データベース スコープ資格情報を作成します。
<key>を適切な値に置き換えます。
CREATE DATABASE SCOPED CREDENTIAL ADL_User
WITH IDENTITY = '<client_id>@<OAuth_2.0_Token_EndPoint>',
SECRET = '<key>';
D. マネージド ID を使用してデータベース スコープの資格情報を作成する
対象:SQL Server 2025(17.x)以降のバージョン
SQL Server 2025 (17.x) では、 Microsoft Entra マネージド ID のサポートが導入されています。 Azure Arcで有効化されたSQL ServerでマネージドIDを使用する方法については、「 Azure Arcで有効化されたSQL Serverのマネージドアイデンティティ」をご覧ください。
EXECUTE sp_configure 'allow server scoped db credentials', 1;
RECONFIGURE;
GO
CREATE DATABASE SCOPED CREDENTIAL [managed_id]
WITH IDENTITY = 'Managed Identity';
E. Microsoft Entra IDを使ってデータベーススコープ認証情報を作成する
対象:Azure SQL Database、Microsoft FabricのSQLデータベース
Microsoft Fabricの Azure SQL Database およびSQL Databaseでは、自分のMicrosoft Entra IDアカウントを使って外部データソースを認証できます。
Microsoft FabricのSQLデータベースでは、データベーススコープ認証情報を指定していない場合、認証方法はデフォルトで USER IDENTITY となり、Entra IDユーザーアカウントをコンテキストとして使います。
CREATE DATABASE SCOPED CREDENTIAL MyCredential
WITH IDENTITY = 'User Identity';