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

C# Discussion :

Ajouter un compte windows en sysadmin dans SQL Server


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut Ajouter un compte windows en sysadmin dans SQL Server
    Salut à tous,
    je cherche à ajouter un compte windows (déjà créé ou un que je crée juste avant...) en tant que sysadmin d'une base SQL.
    J'arrive à le faire avec SQL Server Management Studio, mais je souhaite le faire en cliquant simplement sur un bouton d'une form programmée en C#
    J'ai passé mon week end dessus, et je n'ai rien trouvé...
    pouvez-vous m'aider ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER SERVER ROLE sysadmin ADD MEMBER UserName

    Et un simple ExecuteNonQuery()

  3. #3
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut
    Salut,
    tout d'abord, merci de ton aide.
    Mais risque de passer pour un débutant (ce que je suis...)
    Peux tu m'en dire un peu plus ?
    [Edit]
    J'ai trouvé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    string connetionString = null;
                SqlConnection cnn;
                SqlCommand cmd;
                string CommandSQL1 = null;
                string CommandSQL2 = null;
                string CommandSQL3 = null;
     
                connetionString = "Data Source=PC-DPL\\GMS_HDB_EXPRESS;Initial Catalog=HDB;User ID=sa;Password=sa";
                CommandSQL1 = "CREATE LOGIN MonUtilisateur WITH PASSWORD = '340$Uuxwp7Mcxo7Khy'; ";
                CommandSQL2 = "CREATE USER MonUtilisateur FOR LOGIN MonUtilisateur";
                CommandSQL3 = "ALTER SERVER ROLE sysadmin ADD MEMBER MonUtilisateur";
     
                cnn = new SqlConnection(connetionString);
                try
                {
                    cnn.Open();
                    cmd = new SqlCommand(CommandSQL1, cnn);
                    cmd.ExecuteNonQuery();
                    cmd = new SqlCommand(CommandSQL2, cnn);
                    cmd.ExecuteNonQuery();
                    cmd = new SqlCommand(CommandSQL3, cnn);
                    cmd.ExecuteNonQuery();
                    cmd.Dispose();
                    cnn.Close();
                    MessageBox.Show(" ExecuteNonQuery in SqlCommand executed !!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Can not open connection ! "+ex);
                }
    Par contre, je n'arrive à me connecter que avec un utilisateur "sa" créé à la main et pas en Windows Authentification...

    De plus, je souhaite ajouter un Utilisateur Windows et non en créé un nouveau...

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Pour utiliser l'authentification Windows il faut enlever le user et le password et les remplacer par "Integrated Security=SSPI"

    Attention, tu ne fait un Close que sur la dernière command.
    Une bonne manière d'éviter les erreurs et surtout de ne pas se préoccuper des Close et Dispose est d'utiliser un using.
    using va déclencher le Close et le Dispose tout seul comme un grand.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        try
        {
            connection.Open();
            using (SqlCommand command = new SqlCommand(query1, connection))
            {
                command.ExecuteNonQuery();
            }
            using (SqlCommand command = new SqlCommand(query2, connection))
            {
                command.ExecuteNonQuery();
            }
        }
        /* CA1031
         * Do not catch general exception types or rethrow exception */
        catch (Exception ex)
        {
            if (ex is InvalidOperationException || ex is SqlException )
            {
                // Log this
            }
            else
            {
                throw;
            }
        }
    }

  5. #5
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut
    Merci beaucoup de ton aide.

    ça fonctionne !

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

Discussions similaires

  1. [Débutant] Ajout de tables dans sql server
    Par kryptong dans le forum Linq
    Réponses: 1
    Dernier message: 12/02/2013, 17h48
  2. [Débutant] l ajout d'un champ auto_increment avec vb dans sql server 2008
    Par chouchachaimouta dans le forum VB.NET
    Réponses: 5
    Dernier message: 06/05/2012, 20h48
  3. Réponses: 3
    Dernier message: 06/12/2010, 17h42
  4. Copie de donnees dans SQL server 2000
    Par papayou42 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/12/2003, 10h58
  5. Procedure stockée avec ntext dans SQL server 2000
    Par nagababa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/11/2003, 20h46

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