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

Administration SQL Server Discussion :

N'autoriser un user que pour SELECT sur une vue particulière [2014]


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut N'autoriser un user que pour SELECT sur une vue particulière
    Bonjour,

    Je ne suis pas du tout familier des droits sans SQL Server.

    J'ai la (très mauvaise) habitude de créer les utilisateurs, de leur accorder les droits "sysadmin" au niveau du login, et les mapper sur les différentes bases de données auquelles ils ont accès en "db_owner" avec le schéma "dbo" : normal, habituellement, doit j'autorise des applications éditeur à accéder à la base, soit des développeurs qui doivent pouvoir faire tout et n'importe quoi (en connaissance de cause) sur le serveur.

    Seulement là, je dois ouvrir un serveur à des utilisateurs néophytes, qui vont lancer des requêtes SQL sans avoir la moindre idée de ce qu'il font, afin de consulter des données à partir de requêtes toutes faites qu'on leur aura communiqué.

    J'ai donc dans l'idée de créer ces comptes avec une interdiction totale de la moindre action sur la base, SAUF un grand SELECT sur des vues qu'on va leur mettre à disposition.

    Ainsi, ils ne pourront, normalement, pas faire trop de bêtises.

    Spontanément, j'ai créé ce nouveau user de la même manière que d'habitude, puis j'ai voulu lancer les instructions suivantes :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    revoke all to monuser;
     
    grant select on dbo.mavue to monuser;

    Seulement, le "revoke all" me retourne un message m'indiquant qu'il n'a pas planté, mais qu'il n'a rien fait, car c'est deprecated.

    Je dois me taper 1 à 1 toutes les tables/vues/procédures/fonction à révoker ?

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    Lorsque tu créé un utilisateur dans une base, s'il n'est pas sysadmin par son compte de connexion au niveau serveur, il n'a droit à rien. Un simple GRANT SELECT sur la vue suffit donc.

    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...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Merci

    C'était tout simple en fait... Fallait juste pas mettre le gars "sysadmin" (je savais que c'était une très mauvaise habitude )

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Merci

    C'était tout simple en fait... Fallait juste pas mettre le gars "sysadmin" (je savais que c'était une très mauvaise habitude )
    En fait tout compte de connexion enrôlé en tant que sysadmin au niveau serveur devient automatiquement l'utilisateur dbo dans toute base. Et cet utilisateur possède tous les pouvoirs.

    C'est effectivement une mauvaise chose qui ne devrait être réservé qu'aux DBA.

    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...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Une petite question subsidiaire : on me demande de limiter l'impact sur les ressources de l'utilisation de ces personnes.

    En effet, je vais mettre à disposition de néophytes (qui pourraient bien s'avérer des bidouilleurs acharnés) une série de vue complexes en lecture.

    Je ne pourrai pas les empêcher de faire une requête du type :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from vue1, vue2, vue3, vue4... youpi tralala je suis un gros bidouilleur

    Et plomber les performances, voir remplir le disque de tempdb

    Sur une version 2014 STANDARD, peut-on limiter :
    - CPU (% d'occupation ou nombre de coeurs)
    - RAM
    - Durée requête
    - Espace de travail dans tempdb

    Histoire que s'ils font n'importe quoi :
    - Ils ne plantent pas le serveur
    - Ils ne plombent pas les performances du serveur
    - Ils puissent tout de même avoir des temps de réponse corrects

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

Discussions similaires

  1. SELECT sur une vue ORACLE (ZendFramework)
    Par Kevin91260 dans le forum Zend Framework
    Réponses: 2
    Dernier message: 22/07/2014, 09h28
  2. Accès pour SELECT sur une seule table
    Par jgfa9 dans le forum Administration
    Réponses: 2
    Dernier message: 02/09/2009, 18h52
  3. Privilège select sur une vue
    Par DjinnS dans le forum Administration
    Réponses: 2
    Dernier message: 23/01/2008, 14h41
  4. Problème SELECT sur une vue sous FB 2.0
    Par Pepere72 dans le forum SQL
    Réponses: 18
    Dernier message: 20/10/2006, 10h55
  5. Temps d'execution d'un select sur une vue
    Par rosewood dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/02/2005, 16h06

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