Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

CoqBlog

.NET is good :-)
{ Blog de coq }

Actualités

SQL Server : Empêcher la modification d'une table en dehors d'une procédure stockée ?

Voilà le genre de question qui pourrait bien un jour se poser...
Apparemment c'est possible, du moins d'après ce que je viens de lire dans cet article, mais d'après mes premières constations, le "vérouillage" n'est pas vraiment complet.

L'idée est de se servir de CONTEXT_INFO et d'un trigger.
CONTEXT_INFO permet de stocker jusqu'à 128 octets de données dont la portée n'est pas limitée au lot en cours d'execution mais à la connexion courante (avec quelques subtilités pour MARS si je ne m'abuse).
Une des utilisations que je connaissais de cette fonctionnalité est le "passage" de valeur à un trigger.

Eh bien ici le principe est le même : la procédure stockée censée être seule à avoir le droit de toucher à la table met son nom en CONTEXT_INFO, et un trigger sur cette table se charge de vérifier si l'information présente en CONTEXT_INFO est le nom de la procédure autorisée.

Bon, l'execution systématique du trigger doit avoir un coup à considérer, mais je me pose une autre question devant cette solution : peut on empêcher le changement de valeur de CONTEXT_INFO en dehors d'une procédure stockée ?
Car dans le cas présent pour contourner le vérouillage il suffit de penser à donner la bonne valeur à CONTEXT_INFO avant la tentative d'accès et le tour est joué.

DECLARE @ContextInfo VARBINARY (128);
SET @ContextInfo =CAST('MaSP' AS VARBINARY(128));
SET CONTEXT_INFO @ContextInfo;

INSERT INTO MaTable (MaColonne) VALUES ('Ma valeur');

 

Avis aux spécialistes SQL Server : en fin de compte, c'est recevable comme idée ?

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: vendredi 22 décembre 2006 00:16 par coq
Classé sous :

Commentaires

christian a dit :

Euh ? C'est assez tordu comme truc...

D'autant qu'avec la gestion de la sécurité de SQL on peut interdire tout accès à une table en laissant l'accès à une procédure seule...

Et au pire avec un peut de crypto de 2005 on blinde les données avec un mot de passe...

# décembre 22, 2006 00:53

coq a dit :

C'est bien ce qu'il me semblait... -_-

Nous voilà prévenus :p

# décembre 22, 2006 10:58
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01