Salut à tous,
Je fais un code permettant d'afficher la liste des utilisateurs Locaux d'un PC.
Puis en choisissant l'un d'entre eux, je souhaite savoir s'il est sysadmin de ma base SQL.
Pour la connexion, elle est bonne car j'arrive avec un autre code à créer des utilisateurs et les mettre sysadmin.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
private void Button_Click(object sender, RoutedEventArgs e)
        {
            Utilisateur userSelected = DataGridUtilisateurs.SelectedItem as Utilisateur;
            string UtilisateurSelectionne = "";
            string UtilisateurCourantSysadmin = "";
            if (userSelected != null)
            {
                UtilisateurSelectionne = userSelected.Nom;
                // On regarde si il est Sysadmin
                try
                {
                    FonctionListeUtilisateursCrees();
                    // Ajout de cet Utilisateur dans SQL et ajout des droits sysadmin.
                    string NomPC = System.Environment.MachineName;
                    string connectionString = "Data Source=" + NomPC + "\\GMS_HDB_EXPRESS;persist security info=True;Integrated Security=SSPI;";
                    string QuerySQL1 = "SELECT IS_SRVROLEMEMBER(\'sysadmin\', \'" + NomPC + "\\" + UtilisateurSelectionne + "\')";
                    MessageBox.Show("L'utilsateur est : " + QuerySQL1);
                    SqlConnection SQLConnexion;
 
                    SQLConnexion = new SqlConnection(connectionString);
                    try
                    {
                        SQLConnexion.Open();
                        using (SqlCommand command = new SqlCommand(QuerySQL1, SQLConnexion))
                        {
                            command.ExecuteNonQuery();
                            SqlDataReader reader = command.ExecuteReader();
                            UtilisateurCourantSysadmin += reader.GetValue(0);
                        }
                        SQLConnexion.Close();
 
                    }
                    catch (Exception ex)
                    {
                        System.Windows.MessageBox.Show("Can not open connection ! " + ex);
                    }
                }
                catch (Exception ex)
                {
                    System.Windows.MessageBox.Show("Erreur : " + ex);
                }
            }
            MessageBox.Show("L'utilsateur est : " + UtilisateurCourantSysadmin);
        }
le code suivant fonctionne sous SQL management studio et me renvoi 0 ou 1 en fonction du résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT IS_SRVROLEMEMBER('sysadmin', 'MonPC\MonUtilisateur');