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 :

Ajouter des droits par script à un utilisateur


Sujet :

Administration SQL Server

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut Ajouter des droits par script à un utilisateur
    Bonjour,

    Je suis en train de créer un script pour un kit d'installation de logiciel utilisant SQL Serveur.
    Le script crée la connexion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE LOGIN [xxx] WITH PASSWORD='xxx', DEFAULT_DATABASE=[xxx], DEFAULT_LANGUAGE=[Français], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
    GO
    Puis l'utilisateur attaché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    USE [xxx]
    GO
     
    CREATE USER [xxx] FOR LOGIN [xxx] WITH DEFAULT_SCHEMA=[dbo]
    GO
    Cela fonctionne mais quand je regarde les propriétés du compte utilisateur aucune case de droit n'est cochée. Bien sûr le logiciel ne fonctionne pas.
    Si je coche manuellement c'est OK.
    J'ai généré mes script via le clic droit sur l'objet et 'Générer un script' Le contenu obtenu est bien conforme à ce que j'ai vu sur différents forum et je ne vois pas quelle option ajouter pour affecter les droits

    Merci d'avance de votre aide

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Points : 1 668
    Points
    1 668
    Billets dans le blog
    8
    Par défaut
    Votre script est évidemment incomplet, il vous faut en plus soit ajouter l’utilisateur à des rôles prédéfinis de niveaux base de données, englobant suffisamment de privilèges, lui permettant d’utiliser vos applications sans encombre, Soit attribuer plus finement les autorisations d’objets ; celles-ci s’appliquent aux tables, aux vues, aux procédures stockées, etc. Les autorisations attribuables sont SELECT, INSERT, UPDATE, DELETE, EXECUTE etc..

    Citation Envoyé par Delphi-ne Voir le message
    ...mais quand je regarde les propriétés du compte utilisateur aucune case de droit n'est cochée. Bien sûr le logiciel ne fonctionne pas.
    Si je coche manuellement c'est OK.
    Pouvez-vous préciser avec exactitude, ce vous avez coché et quel niveau (utilisateur de base de base de données, Connexion (login), etc.. pour que vos applications fonctionnent à nouveau. En effet, c'est vraisemblablement ce qui vous manque dans vos scripts !

    A+
    "Une idée mal écrite est une idée fausse !"
    http://hamid-mira.blogspot.com

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Merci de votre retour.

    Voici la manipulation que j'effectue après l'exézcution du script pour que cela fonctionne ;

    Sur l'occurence de la base de données
    Option Sécurité
    Sous option Utilisateurs
    Clic droit sur le nom d'utilisateur créé par le script

    Dans le panel Membres du rôle je coche db_owner

  4. #4
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Points : 1 668
    Points
    1 668
    Billets dans le blog
    8
    Par défaut
    Dans ce cas il faut que vous rajoutiez à votre script les instructions T-SQL ci-après :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    USE [Nom_de_la base_de_donnees]
    GO
    ALTER ROLE [db_owner] ADD MEMBER [utilisateur_de_base_de_donnees]   
    GO
    Le littéral [utilisateur_de_base_de_donnees] est celui que vous avez représenté, dans votre premier post, avec des [xxx] dans CREATE USER [xxx] …

    A+
    "Une idée mal écrite est une idée fausse !"
    http://hamid-mira.blogspot.com

  5. #5
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Points : 1 668
    Points
    1 668
    Billets dans le blog
    8
    Par défaut
    (complément ..)

    Il n'est pas opportun de faire fonctionner vos application avec un utilisateur appartenant au rôle db_owner sauf si l'application le nécessite vraiment (?)
    Les membres du rôle de base de données fixe db_owner peuvent effectuer toutes les activités de configuration et de maintenance sur la base de données et peuvent également supprimer la base de données !

    Voilà, c'est une petite ''mise en garde'', et il s'agit là d'un autre sujet …

    A+
    "Une idée mal écrite est une idée fausse !"
    http://hamid-mira.blogspot.com

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Il n'est pas opportun de faire fonctionner vos application avec un utilisateur appartenant au rôle db_owner
    Les utilisateurs n'iront pas loin avec. Ils ne disposent pas d'accès à Config Manager et leur action par rapport à la base est entièrement contrôlé gérée par un logiciel frontal.
    Lui seul a les identifiants de connexion
    Le but en mettant des droits assez larges est d'éviter des limitations par la suite.

    J'ai un problème de syntaxe avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER ROLE [db_owner] ADD MEMBER [xxx] ;
    Je suis en version 2008 et apparamment cette syntaxe n'est pas reconnue. Par contre je n'ai pas trouvé la syntaxe correcte.

  7. #7
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Points : 1 668
    Points
    1 668
    Billets dans le blog
    8
    Par défaut
    Sous SQL Server 2008, il faut utiliser la syntaxe ci-après :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    USE [Nom_de_la base_de_donnees]
    GO
    EXEC sp_addrolemember N'db_owner', N'utilisateur_de_base_de_donnees'
    GO

    A+
    "Une idée mal écrite est une idée fausse !"
    http://hamid-mira.blogspot.com

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    C'est génial

    Merci beaucoup

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

Discussions similaires

  1. Tree control : Ajouter des noeuds par script AS3
    Par TheDrev dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 01/05/2009, 10h01
  2. script pour ajouter des droits d'exécution aux scripts
    Par Chatbour dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 14/10/2007, 17h40
  3. désactiver des fonctionnalités par script
    Par nicovbs dans le forum Windows Vista
    Réponses: 0
    Dernier message: 11/09/2007, 15h30
  4. Réponses: 2
    Dernier message: 07/08/2006, 16h43
  5. [Installation] Gestion des droits par dossier ?
    Par Glob dans le forum CVS
    Réponses: 3
    Dernier message: 13/03/2006, 15h04

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