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 :

Script pour affectation de droits sur une base


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    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
    Par défaut Script pour affectation de droits sur une base
    Bonjour,

    Je suis en train de développer un SetUp d'installation pour une application utilisant SQL Serveur.
    Le SetUP doit créer la base de données et les moyens de connexion.
    Tous les éléments ont le même nom (l'utilisateur, la base, etc).

    Je parviens bien à créer la base et l'utilisateur mais je n'arrive pas à donner à l'utilisateur les droits nécessaires sur la base.
    Les scripts sont exécutés via Delphi via ADO.

    Voici celui de création de base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IF EXISTS (SELECT * FROM sys.databases WHERE name = 'XXXX')
    BEGIN
       DROP DATABASE XXXX;   
    END;
    CREATE DATABASE XXXX
    ;

    Celui de création du login
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    USE [MASTER];
    CREATE LOGIN [XXXX] WITH PASSWORD='2222', DEFAULT_DATABASE=[XXXX], DEFAULT_LANGUAGE=[Français], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF;
    Enfin celui du User
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IF  EXISTS (SELECT * FROM sys.database_principals WHERE name = N'XXXX') BEGIN
       DROP USER [XXXX]
    end;
    CREATE USER [XXXX] FOR LOGIN [XXXX] WITH DEFAULT_SCHEMA=[XXXX];
    Je n'ai aucune erreur d'exécution.
    Dans l'image jointe on voit pour la base XXX qu'elle n'est pas attribuée à l'utilisateur et qu'aucun droit ne lui est attaché.

    Merci de vos conseils
    Images attachées Images attachées  

  2. #2
    Membre Expert
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Par défaut
    C'est normal, dans ton script tu écris nulle part que tu donnes des droits au user sur ta DB. Tu la mets juste par defaut.

    Par exemple GRANT SELECT TO [User1]

  3. #3
    Membre éprouvé

    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
    Par défaut
    Merci pour le retour.

    Si XXXX est le nom de mon User, de mon Login et de la base cela reviendrait à écrire ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    USE XXXX;
    GRANT INSERT TO XXXX;
    GO
    Je ne pourrai essayer que sur place, j'essaie donc d'être à peu près certain de ce que je devrai faire.

  4. #4
    Membre éprouvé

    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
    Par défaut
    j'ai trouvé.
    If faut, une fois le USER créé ajouter le rôle (en l'occurrence ici propriétaire)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    USE [XXXX];
    CREATE USER [XXXX] FOR LOGIN [XXXX] WITH DEFAULT_SCHEMA=[XXXX];
    exec sp_addrolemember 'db_owner', XXXX;

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

Discussions similaires

  1. pgAdmin : créer un rôle et lui affecter des droits sur une base
    Par jmnicolas dans le forum Administration
    Réponses: 1
    Dernier message: 14/10/2010, 11h47
  2. Script Bash pour exécuter requete SQL sur une base Oracle
    Par Flipmode dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 28/11/2008, 17h18
  3. Droits sur une base Access
    Par Louis-Guillaume Morand dans le forum Sécurité
    Réponses: 6
    Dernier message: 26/02/2007, 20h18
  4. Droits sur une base access 97
    Par BOBUR dans le forum Sécurité
    Réponses: 5
    Dernier message: 21/02/2007, 23h48
  5. [ASP.NET]Problème de droits sur une base access
    Par dacid dans le forum ASP.NET
    Réponses: 8
    Dernier message: 25/11/2006, 11h04

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