あなたが取ることができる3つのオプションを考えることができます。まず、システム管理者に Active Directory からサービス アカウントをプロビジョニングしてもらい、sql アカウントと同じアクセス許可を付与してから、IIS のアプリケーション プールの詳細設定でアプリケーション ID プロパティを構成します。その後、構成文字列からユーザー名とパスワードを削除し、プロパティ「trusted_connection=true」に置き換えることができます。
次に、列レベルの暗号化を適用して、データベースに格納されている接続文字列を暗号化できます。イントラネット アプリのコードを変更することなく実行できます。テーブルの名前を変更し、decryptautokeybycert 関数を含む古いテーブル名でビューを作成する必要があります。記事の最後に例を掲載します。
3 番目に、SSL/TLS を使用してすべての接続を強制的に暗号化するようにサーバーを構成するよう DBA に依頼できます。
use master
go
create database EncryptedData
go
use EncryptedData
create master key encryption by password='P@ssw0rd!'
create certificate KeyProtection with subject='Key Protection'
create symmetric key ColumnKey
with algorithm=AES_256
encryption by certificate KeyProtection
create table SecretMessages(Ciphertext varbinary(4000))
go
create view dbo.MessageRecords
as
select
cast(DECRYPTBYKEYAUTOCERT( cert_id('KeyProtection'), null,Ciphertext) as varchar(max)) MessageRecord
from dbo.SecretMessages
go
open symmetric key ColumnKey decryption by certificate KeyProtection
insert into SecretMessages(Ciphertext) values (ENCRYPTBYKEY(key_guid('ColumnKey'),'Hello world 1'))
insert into SecretMessages(Ciphertext) values (ENCRYPTBYKEY(key_guid('ColumnKey'),'Hello world 2'))
insert into SecretMessages(Ciphertext) values (ENCRYPTBYKEY(key_guid('ColumnKey'),'Hello world 3'))
insert into SecretMessages(Ciphertext) values (ENCRYPTBYKEY(key_guid('ColumnKey'),'Hello world 4'))
insert into SecretMessages(Ciphertext) values (ENCRYPTBYKEY(key_guid('ColumnKey'),'Hello world 5'))
close symmetric key ColumnKey
select * from MessageRecords