Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2008, 21h39   #1
Invité de passage
 
Inscription : mai 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 3
Points : 0
Points : 0
Par défaut Question autour de sp_executesql

Bonjour,
Si vous pouvez me dire simplement ce que je dois faire pour utiliser le nom d'une table (ou d'une vue) comme paramètre de sp_executesql (dans une stored proc.):

DECLARE @tab varchar(50)
SET @tab = 'uneTableQcq'
DECLARE @sql nvarchar(200)
DECLARE @param_def nvarchar(100)
DECLARE @p_tab varchar(50)
SET @sql = N'SELECT * FROM @p_tab;'
SET @param_def = N'@p_tab varchar(50)'
EXECUTE sp_executesql @sql, @param_def, @p_tab=@tab;


Je veux éviter de faire
SET @sql = N'SELECT * FROM' + @tab
pour des raisons de sécurité.

Merci!
Colon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 23h35   #2
Nouveau Membre du Club
 
Inscription : mai 2008
Messages : 32
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 32
Points : 33
Points : 33
Je ne pense pas que cela soit possible

Pourquoi ne pas créer une procédure stockée pour "cacher" le code SQL ?

Code :
1
2
3
4
5
6
7
8
9
10
11
 
CREATE PROCEDURE MaProcedure
    @Matable NVARCHAR(50)
AS
    DECLARE @sql NVARCHAR(100)
    SET @sql = N'SELECT * FROM ' + @Matable
 
    EXECUTE sp_executesql @sql
GO
 
EXECUTE MaProcedure 'Table'
________________________________
Seminoque, créateur de
http://www.bingokaz.com
seminoque est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 15h20   #3
Invité de passage
 
Inscription : mai 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 3
Points : 0
Points : 0
Par défaut Question autour de sp_executesql

Je ne voulais pas faire comme tu le propose pour sécuriser le code, surtout pour éviter de se faire "jéoparder" (si je puis dire):

http://blogs.msdn.com/raulga/archive...injection.aspx
Colon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2008, 12h18   #4
Rédacteur/Modérateur

 
Avatar de WOLO Laurent
 
Homme Laurent WOLO
Architecte de base de données
Inscription : mars 2003
Messages : 2 696
Détails du profil
Informations personnelles :
Nom : Homme Laurent WOLO
Âge : 35
Localisation : Congo-Brazzaville

Informations professionnelles :
Activité : Architecte de base de données
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 2 696
Points : 3 917
Points : 3 917
Envoyer un message via Yahoo à WOLO Laurent
Cette fonctionnalité a été ajouté dans la version 2008 de sql serveur.
Bon courage
__________________

Découvrez la FAQ de MS SQL Server.
La chance accorde ses faveurs aux esprits avertis !
WOLO Laurent est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h54.


 
 
 
 
Partenaires

Hébergement Web