次の方法で共有


CREATE CREDENTIAL (Transact-SQL)

資格情報を作成します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

CREATE CREDENTIAL credential_name WITH IDENTITY = 'identity_name'
    [ , SECRET = 'secret' ]
        [ FOR CRYPTOGRAPHIC PROVIDER cryptographic_provider_name ]

引数

  • credential_name
    作成する資格情報の名前を指定します。credential_name はシャープ (#) 記号で始めることはできません。## で始まる資格情報はシステム資格情報です。

  • IDENTITY ='identity_name'
    サーバーの外部に接続するときに使用するアカウントの名前を指定します。

  • SECRET ='secret'
    送信の認証に必要なシークレットを指定します。この句は省略可能です。

  • FOR CRYPTOGRAPHIC PROVIDER cryptographic_provider_name
    拡張キー管理プロバイダ (EKM) の名前を指定します。キー管理の詳細については、「拡張キー管理 (EKM) について」を参照してください。

説明

資格情報は、SQL Server 外部のリソースへの接続に必要な認証情報を含むレコードです。通常、資格情報には Windows ユーザーとパスワードが含まれます。

IDENTITY が Windows ユーザーの場合、このシークレットにはパスワードを指定できます。シークレットはサービス マスタ キーを使用して暗号化されます。サービス マスタ キーが再生成された場合、シークレットは新しいサービス マスタ キーを使用して再度暗号化されます。

資格情報を作成した後、CREATE LOGIN または ALTER LOGIN を使用して、この資格情報を SQL Server ログインにマップすることができます。1 つの SQL Server ログインは 1 つの資格情報だけにマップできますが、1 つの資格情報は複数の SQL Server ログインにマップできます。詳細については、「資格情報 (データベース エンジン)」を参照してください。

資格情報に関する情報は、sys.credentials カタログ ビューで確認できます。

ログインにマップされたプロバイダの資格情報がない場合は、SQL Server サービス アカウントにマップされた資格情報が使用されます。

それぞれが異なるプロバイダで使用される資格情報であれば、1 つのログインに複数の資格情報をマップできます。マップされた資格情報は、各ログインで各プロバイダにつき 1 つだけ存在する必要があります。同じ資格情報を他のログインにマップすることはできます。

権限

ALTER ANY CREDENTIAL 権限が必要です。

次の例では、資格情報 AlterEgo を作成します。この資格情報には Windows ユーザー Mary5 とパスワードが含まれます。

CREATE CREDENTIAL AlterEgo WITH IDENTITY = 'Mary5', 
    SECRET = '<EnterStrongPasswordHere>';
GO

次の例では、以前に EKM 管理ツールを使って EKM モジュール上に作成した User1OnEKM というアカウントを、基本的なアカウントの種類とパスワードと共に使用します。サーバーの sysadmin アカウントで、EKM アカウントへの接続に使用する資格情報を作成し、User1SQL Server アカウントに割り当てます。

CREATE CREDENTIAL CredentialForEKM
WITH IDENTITY='User1OnEKM'
, SECRET='<EnterStrongPasswordHere>'
  FOR CRYPTOGRAPHIC PROVIDER MyEKMProvider;
GO
/* Modify the login to assign the cryptographic provider credential */
ALTER LOGIN User1
ADD CREDENTIAL CredentialForEKM;
/* Modify the login to assign a non cryptographic provider credential */ 
ALTER LOGIN User1
WITH CREDENTIAL = AlterEgo;
GO