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

  1. #1
    Membre habitué
    Homme Profil pro
    developpeur sql et scripting
    Inscrit en
    août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : developpeur sql et scripting
    Secteur : Santé

    Informations forums :
    Inscription : août 2014
    Messages : 124
    Points : 180
    Points
    180

    Par défaut Fonction table avec accès sur multiples schémas avec owner différent

    Bonjour bonjour

    J'ai un problème d'accès sur une fonction table d'un schéma B d'une instance SQL server. Cette fonction doit pouvoir avoir accès à la table t du schéma A de la même instance de SQL server.
    Les deux owner de chaque schéma sont différents et ainsi, ma fonction n'accède pas à mon schéma A. Ça fait longtemps que je n'ai pas administré sous SQL server et les post que je trouve me perdent un peu.

    Certains parlent de créer un certificat pour le raccrocher à l'utilisateur du schéma B, d'autres disent que sans même owner j'ai le droit de pleurer toutes les larmes de mon corps ect....

    J'aurais besoin de vos avis, pour savoir selon quel est le meilleur choix à faire pour accéder à mes besoins

    Bisous bisous

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    septembre 2016
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : septembre 2016
    Messages : 576
    Points : 1 069
    Points
    1 069

    Par défaut

    Bonjour JeanYvette,

    La rupture dans la chaine des propriétaires est un truc qui vaut mieux contourner que d'essayer de résoudre.
    Enfin ça dépend de si on est sur la même base ou pas.

    Si les objets sont sur des bases distinctes voir ici : https://docs.microsoft.com/fr-fr/dot...-in-sql-server

    Si les objets sont dans la même base :
    * voir pourquoi tous les objets n'appartiennent pas au même propriétaire et résoudre le problème en définissant un propriétaire "universel"

    La raison en est la suivante : les droits ne sont pas ré évalués dans le cas où les objets sous-jacent appartiennent au même proprio.
    Ainsi si DEV est propriétaire d'une table et d'une vue, on peut tranquillement donner le droit SELECT sur la vue tout en mettant un DENY SELECT sur la table pour l'utilisateur TOM. Le deny n'est pas évalué lors de la consommation de la vue.
    A l'inverse si la table appartient à DEV et que la vue appartient à DBO, le fait de donner le droit SELECT sur la vue ne suffit pas car on va ré-évaluer les droits lors de l'accès à la table. Si on n'a pas donné le droit SELECT sur la table alors on aura le droit de voir les colonnes de la vue mais pas les lignes de la table

    Mon conseil : faire en sorte que DBO soit le propriétaire universel des objets de la base.

    A+
    Le savoir est une nourriture qui exige des efforts.

  3. #3
    Membre habitué
    Homme Profil pro
    developpeur sql et scripting
    Inscrit en
    août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : developpeur sql et scripting
    Secteur : Santé

    Informations forums :
    Inscription : août 2014
    Messages : 124
    Points : 180
    Points
    180

    Par défaut

    Salut salut

    Merci pour ton expertise. On est sur la même instance et pas le même schéma (base ?).
    La raison est simple, la création de ce nouveau schéma a été demandé ainsi que le fait de créer un nouvel utilisateur et la personne a donc mis ce nouvel utilisateur en propriétaire.

    Je vais voir de faire ce que tu me conseille, je reviendrais si besoin

    Bisous bisous

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    septembre 2016
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : septembre 2016
    Messages : 576
    Points : 1 069
    Points
    1 069

    Par défaut

    Bonsoir JeanYvette,
    Citation Envoyé par JeanYvette Voir le message
    On est sur la même instance et pas le même schéma (base ?)
    SQL server fait bien la différence entre la base et le schéma.
    La base étant une limite fonctionnelle (backup, sécurité, options, ...)
    Le schéma étant un espace de nom avec en prime un objet permettant de définir des droits "à valoir" sur les objets présents et futurs.

    Donc il est important, surtout pour CETTE demande de bien savoir de quoi on parle.
    Le savoir est une nourriture qui exige des efforts.

  5. #5
    Membre habitué
    Homme Profil pro
    developpeur sql et scripting
    Inscrit en
    août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : developpeur sql et scripting
    Secteur : Santé

    Informations forums :
    Inscription : août 2014
    Messages : 124
    Points : 180
    Points
    180

    Par défaut

    En effet, mais je sais aussi qu'il m'arrive de me mélanger les pinceaux et surtout que certains ne résonnent qu'en schéma du fait d'être habitué en Oracle.
    Ici, on parlait bien de database

    Finalement, ce qui a été fait, c'est de rajouter les utilisateurs manquants de la base B a la base A puis de les affecter en dbreader/dbwriter via le mapping de l'user. Ensuite les petits grant habituels qui vont bien

    En totu cas merci de ton aide. N'ayant jamais administré, cette notion de chaining de propriétaire était pour moi que de l'abstrait avant. Ca m'a permis de me documenter plus au moins cette histoire

    Bisous bisous

  6. #6
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    19 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 19 005
    Points : 44 666
    Points
    44 666

    Par défaut

    Citation Envoyé par Michel.Priori Voir le message
    ...
    SQL server fait bien la différence entre la base et le schéma.
    La base étant une limite fonctionnelle (backup, sécurité, options, ...)
    Le schéma étant un espace de nom avec en prime un objet permettant de définir des droits "à valoir" sur les objets présents et futurs.
    Plus exactement :
    • la base est un espace physique de stockage
    • le schéma est un espace logique de stockage


    SQL Server est multibase et multi schéma.
    Le "file group" (groupe de fichier) est un sous espace de stockage.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction Table avec Curseur dynamique
    Par Cyrille36 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 26/06/2013, 07h44
  2. help : fonction table avec curseur dedans
    Par yolane dans le forum Développement
    Réponses: 1
    Dernier message: 18/08/2008, 13h09
  3. 1 requête , 2 tables avec sources différentes
    Par caballero dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2007, 10h47
  4. [Requête] regroupement de 2 tables avec champs différents
    Par egg3774 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 29/04/2007, 21h40
  5. plusieurs COUNT sur une seule table avec conditions différentes
    Par dingoth dans le forum Administration
    Réponses: 9
    Dernier message: 20/12/2006, 10h13

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