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

Accès aux données Discussion :

Autorisation refusée sur l'objet 'sysobject' ?


Sujet :

Accès aux données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut Autorisation refusée sur l'objet 'sysobject' ?
    J'ai fait une page aspx qui permet de gérer les utilisateurs, eux mêmes gérés par le membership provider.

    J'ai donc dans ma base toutes les tables aspnet_ qu'il faut pour gérer cela.

    Dans ma page Web, je propose donc de modifier le rôle, de dévérouiller un utilisateur, ET de supprimer un utilisateur.

    Une erreur est générée uniquement quand je veux supprimer un utilisateur.

    Autorisation SELECT refusée sur l'objet 'sysobjects', base de données 'mssqlsystemresource', schéma 'sys'.
    Ce que je ne comprends pas c'est que ca marche très bien quand je génère la page localement avec Crtl+F5.

    Mais une fois déployé sur le IIS, l'erreur est générée.

    Que puis je faire svp ?

  2. #2
    Membre du Club Avatar de medtun.net
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 57
    Points : 60
    Points
    60
    Par défaut C'est un problème d'utilisateur de la base de données
    Bonjour,
    Il faut ajouter au niveau de ta base de données l'utilisateur ASPNET et lui attribuer les rôles db_datareader et db_datawriter.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    Ayant deja cherché pas mal sur une solution à ce problème, l'utilisateur sur mon serveur IIS n'est pas "ASPNET" mais "SERVICE RESEAU".

    J'ai bien coché les roles correspondant pour cet utilisateur mais rien n'y fait, la suppression entraine des problèmes d'autorisations.

    J'ai d'ailleurs essayer au compte goutte d'autoriser "par ci par là" comem on dit, mais dicédement, rien ne passe. A croire que je ne serai jamais autoriser à supprimer un compte utilisateur :/

    Que faire

  4. #4
    Membre du Club Avatar de medtun.net
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 57
    Points : 60
    Points
    60
    Par défaut
    Le fait d'utiliser le framework .Net 2.0 implique que t'as un compte utilisateur nommé : "nom_de_ton_ordinateur\ASPNET" (qui est le "ASP.NET Machine Account", créé par microsoft pour des raisons de sécurité). Par défaut IIS utilse ce compte pour accéder au répertoire de ton site (que tu l'as créé, en principe, dans le dossier "wwwroot").
    Maintenant au niveau de ta base de donnée tu dois ajouter l'utilsateur "aspnet" dans la liste des utilisateurs :
    1. ouvrir la base de données
    2. ouvrir dossier sécurité
    3. ouvrir dossier utilisateur
    4. cliquer bd de la souris et choisir "Nouvel utilisateur"
    5. dans la zone "Nom d'accès" taper "nom_de_ton_ordinateur\ASPNET"
    6. dans la zone "nom d'utilisateur" taper "aspnet" par exemple..
    7. cocher "db_datareader" et "db_datawriter" dans la zone "Membres du rôle"

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    ca n'est valable que s'il opte pour une connexion "sécurisée" au SGBD.
    S'il se connecte avec une authentification SQL... le problème ne se pose pas, il suffit qu'il ai créé un utilisateur avec le nom qu'il veut, en précisant que c'est une session SQL et non une session sécurisée... et le tour est joué, son utilisateur sera systèmatiquement pleinement nommé. (en revanche le pass transitera en clair, mais si le SGBD est sur la meme machine qu'IIS ca ne pose aucun problème)

    la connexion sécurisée reprend le login "windows" du compte sous lequel il se connecte, donc logiquement ASPNET pour une application ASP, Service Réseau ou Service Système si c'est un service windows, et le login de l'utilisateur courant, si c'est un client lourd.
    la connexion dite sécurisée (utilisant la session windows) n'est pas toujours disponible... serveur de données dans LAN et server IIS dans DMZ par exemple (c'est pas propre mais certains le font) ne fonctionnera pas meme si l'utilisateur est enregistré.

    Attention aussi avec les connexions sécurisées, au fait de ce connecté en local et de ce connecter de l'extérieur. A moins de faire parti d'un domaine d'entreprise où dans ce cas le problème ne se pose normallement pas (si l'utilisateur utilisé par IIS fait parti du domaine)... hors domaine, c'est une toute autre histoire. Un produit qui fonctionne au sein de l'entreprise peut ne plus du tout fonctionner chez un client à cause de ces notions de sécurité...

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    Merci pour vos réponses,

    Sur mon serveur je pense que l'utilisateur ASPNET dont vous parlez est pour moi SERVICE RESEAU, j'ai entendu dire que ca dépendait de la version de Windows Server.

    En tout cas j'ai bien autorisé les rôles, mais comme le faisait remarquer cinemania, j'ai choisi de créer un utilisateur moi même, et de le déclarer dans ma chaine de connexion.
    Mes tables aspnet_ sont dans la même base de données que celle que j'utilise pour mon site Web.

    Ma chaine de connexion fonctionne très bien, je peux lire modifier et supprimer des données, mais je ne peux pas supprimer un compte utilisateur, c'est ca le mystère.

    Notez bien d'ailleurs que l'erreur n'est pas basée sur un schéma dbo classique de ma base de données, mais bien "sur l'objet 'sysobjects', base de données 'mssqlsystemresource', schéma 'sys'"...
    Base de données dont je connais pas l'existence et que je ne vois même pas quand je regarde les base de données système.

    Je ne peux pas attribuer de droits sur cette base, vu que l'outil de management Sql ne la voit même pas :/

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    le problème se produit lorsque tu souhaite supprimer un utilisateur ?

    depuis ton appli et/ou sql managment studio ?

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    En fait j'ai fait des pages web pour remplacer l'outil "Administration de site Web" accessible depuis Visual Studio, afin de permettre aux administrateurs du site de gérer eux mêmes les comptes utilisateurs.

    Or une fois déployée sur le serveur IIS, quand je clique sur mon bouton pour supprimer un utilisateur, ca lève l'exception que j'ai citée.

    Depuis sql managment studio je peux pas de tte façon, les infos des tables aspnet_ sont cryptées.
    C'est pour ca ça que je dois passer par la classe MemberShip.

    Mais bref, outre l'aspect "code", le soucis c'est que j'ai beau autoriser tout ce qu'il faut, ca ne fonctionne pas.

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    Ptit up, si quelqu'un a une idée

  10. #10
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Au cas ou le problème serait toujours d'actualité, j'ai trouvé ca .

    Ca fonctionne tres bien

    http://the-systems-guy.over-blog.org...e-6924788.html

Discussions similaires

  1. [débutant] Autorisation refusée sur un objet.
    Par leo2v2o dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/01/2008, 11h36
  2. vector de pointeurs sur des objet
    Par jean-bobby dans le forum SL & STL
    Réponses: 26
    Dernier message: 06/08/2004, 14h54
  3. pointeur multiple sur un objet
    Par Arnaud-h dans le forum C++Builder
    Réponses: 9
    Dernier message: 02/06/2004, 11h33
  4. [debutant] Contraintes d'intégrité définies sur un objet
    Par maysa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/05/2004, 14h57
  5. Requêtes : recherche de maxi sur plusieur Objet
    Par pertuis dans le forum Langage SQL
    Réponses: 6
    Dernier message: 08/03/2004, 15h28

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