CREATE CREDENTIAL (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