IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Exécution CLR SQL Server avec ODBC Connexion


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de i.chafai
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Décembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 117
    Par défaut Exécution CLR SQL Server avec ODBC Connexion
    Bonjour,

    Je viens de créer un CLR avec C# sous VS 2010, ma chaine de connexion doit être créer sous ODBC car il existe certain champ dans la base de données qui sont visible seulement avec ODBC.

    Ci-dessous le code de ma CLR :

    [
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Microsoft.SqlServer.Server.SqlProcedure]
            public static void Test_CLR()
            {
                using (OdbcConnection conn = new OdbcConnection("DSN=SAGE"))
                {
                    OdbcCommand InsertCurrencyCommand = new OdbcCommand();
                    InsertCurrencyCommand.CommandText =
                    "SELECT * into tab2 FROM F_DOCENTETE";
     
                    InsertCurrencyCommand.Connection = conn;
     
                    conn.Open();
                    InsertCurrencyCommand.ExecuteNonQuery();
                    conn.Close();
                }
            }
    J'ai généré la DLL du projet et je l'ai ajouter sous SQL Server 2008

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE ASSEMBLY DSN_CLR from 'C:\Users\plus\Documents\Visual Studio 2010\Projects\DSN_CLR\DSN_CLR\bin\Debug\DSN_CLR.dll' WITH PERMISSION_SET = EXTERNAL_ACCESS;
     
    create PROCEDURE Test_CLR
    AS
    EXTERNAL NAME DSN_CLR.[DSN_CLR.Proc_Iheb].Test_CLR;
    En exécution la procédure Test_CLR je reçois toujours le message d'erreur suivant :

    Msg 6522, Niveau 16, État 1, Procédure Test_CLR, Ligne 0
    Une erreur .NET Framework s'est produite au cours de l'exécution de la routine ou de la fonction d'agrégation définie par l'utilisateur "Test_CLR" :
    System.Security.SecurityException: Échec de la demande d'autorisation de type 'System.Data.Odbc.OdbcPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
    System.Security.SecurityException:
    à System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
    à System.Security.PermissionSet.Demand()
    à System.Data.Common.DbConnectionOptions.DemandPermission()
    à System.Data.Odbc.OdbcConnection.PermissionDemand()
    à System.Data.Odbc.OdbcConnectionFactory.PermissionDemand(DbConnection outerConnection)
    à System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
    à System.Data.Odbc.OdbcConnection.Open()
    à DSN_CLR.Proc_Iheb.Test_CLR()

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    il existe certain champ dans la base de données qui sont visible seulement avec ODBC.
    Ceci n'a pas de sens : ou vols colonnes sont dans la table, ou elles n'y sont pas.
    Pouvez-vous expliciter ?

    Qu'est-ce qui justifie l'utilisation de PERMISSION_SET = EXTERNAL_ACCESS ?

    L'erreur que vous obtenez est à mon avis à cause du fait que votre assembly n'est pas signée ou fortement nommée.

    @++

  3. #3
    Membre confirmé Avatar de i.chafai
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Décembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 117
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Ceci n'a pas de sens : ou vols colonnes sont dans la table, ou elles n'y sont pas.
    Pouvez-vous expliciter ?
    @++
    Dans Sage il existe certain champs virtuels qui sont accessible seulement avec le driver ODBC fournit par Sage.

    Citation Envoyé par elsuket Voir le message
    Qu'est-ce qui justifie l'utilisation de PERMISSION_SET = EXTERNAL_ACCESS ?
    @++
    T'as raison je me suis trompé c'est UNSAFE

  4. #4
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    T'as raison je me suis trompé c'est UNSAFE
    Elle est encore plus justifiée celle-là ... Mr Elsuket puisque tu es bien parti dans ton explication je te laisse continuer :-)

    ++

Discussions similaires

  1. Galère connexion BDD SQL SERVER avec delphi
    Par segnac dans le forum Bases de données
    Réponses: 3
    Dernier message: 30/01/2010, 12h39
  2. problème connexion sql server avec driver jtds
    Par javaweb44 dans le forum Websphere
    Réponses: 3
    Dernier message: 05/10/2007, 12h07
  3. connexion à sql server avec l'authentification windouws
    Par kadiato dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/04/2007, 16h17
  4. [ODBC] Connexion SQL Server en ODBC
    Par grinder59 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 23/01/2007, 16h10
  5. Connexion à SQL Server avec ASP
    Par ayobo dans le forum ASP
    Réponses: 3
    Dernier message: 25/05/2004, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo