Je peux penser à trois options que vous pouvez prendre. Tout d'abord, demandez à votre administrateur système de fournir un compte de service à partir du répertoire actif, accordez les mêmes autorisations que le compte sql, puis configurez la propriété Identité de l'application dans les paramètres avancés du pool d'applications dans IIS. Vous pourrez alors supprimer le nom d'utilisateur et le mot de passe de la chaîne de configuration et le remplacer par la propriété "trusted_connection = true". Deuxièmement, vous pouvez appliquer un chiffrement au niveau de la colonne pour chiffrer les chaînes de connexion stockées dans votre base de données. Cela peut être fait sans aucun changement de code pour votre application intranet. Vous devrez renommer la table, créer une vue avec l'ancien nom de table contenant la fonction decryptautokeybycert. Je posterai un exemple à la fin du post. Troisièmement, vous pouvez demander au DBA de configurer le serveur pour forcer le chiffrement de toutes les connexions à l'aide de SSL \ TLS.
use master
go
create database EncryptedData
go
use EncryptedData
create master key encryption by password='[email protected]!'
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
l'application fonctionnerait-elle si la sécurité intégrée est utilisée à la place dans la chaîne de connexion? –
@Remus Rusanu, Non, je dois me connecter à chaque base de données en utilisant le nom d'utilisateur et mot de passe. – w0051977