Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Restaurer l'accès à l'instance SQL Server sans redémarrer

​​

À partir de Microsoft SQL Server 2008, par défaut, le groupe d'administrateurs locaux n'est plus ajouté aux administrateurs SQL Server lors de l'installation, cela ne peut être fait que manuellement.

Par conséquent, si le groupe de l'administrateur n'a pas été ajouté pendant ou après l'installation, il existe des situations où l'accès administratif à SQL Server est perdu. Cela peut se produire lorsque l'utilisateur sous lequel l'installation a été effectuée est inconnu ou que le mot de passe du même compte est perdu, ou lorsque l'administrateur de base de données précédent a quitté et que son compte Windows, étant le seul à disposer des droits d'administrateur pour SQL Server, a été supprimé .

Habituellement, dans ce cas, le mécanisme habituel avec un redémarrage de SQL Server mono-utilisateur est utilisé. Cependant, cette approche nécessite un certain temps d'arrêt, et dans certains systèmes, cela est inacceptable.

Il existe un moyen très indolore de résoudre ce problème sans aucun temps d'arrêt si certaines conditions sont remplies. Beaucoup ont entendu et utilisé les utilitaires de Mark Russinovich – Windows Sysinternals. Cet ensemble contient l'utilitaire PsExec, qui vous permet de démarrer un processus sur une machine locale ou distante.

L'un des avantages de cet utilitaire est la possibilité d'exécuter des processus pour le compte d'un compte NT AUTHORITY\SYSTEM , qui - contrairement aux comptes administrateur "normaux" - a accès à SQL Server par défaut.

Pour que cette méthode fonctionne, SQL Server doit avoir l'authentification Windows activée et s'exécuter en tant que compte NT AUTHORITY\SYSTEM, sinon, le compte NT AUTHORITY\SYSTEM n'aura que des droits publics, pas un administrateur système.

Préparer la restauration de l'accès administratif à SQL Server

1. Assurez-vous que le service SQL Server s'exécute au nom de votre compte NT AUTHORITY\SYSTEM.
2. Téléchargez et installez la version actuelle de SQL Server Management Studio (SSMS) sur votre serveur SQL, par exemple ici
3. Téléchargez et décompressez l'archive sur le serveur SQL de la version actuelle de l'ensemble d'utilitaires PsTools (PsExec y est inclus), par exemple, PSTools.

Ajouts à SQL Server Administrator

1. Exécutez la ligne de commande avec des droits élevés sur le serveur SQL (Maj + clic droit, "Exécuter en tant qu'administrateur") et accédez au dossier où l'utilitaire PsExec est décompressé.
2. Exécutez la commande ci-dessous, en corrigeant votre chemin d'accès réel à Management Studio :

PsExec -s -i "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe"

Paramètres :

  • -i - indique qu'il est nécessaire de démarrer le processus en mode interactif
  • -s – indique que vous devez exécuter le processus au nom de votre compte système NT AUTHORITY\SYSTEM.
    Vous obtiendrez approximativement les éléments suivants (au premier lancement, vous verrez une fenêtre avec le contrat de licence) :

et le SSMS démarrera.

3 Cliquer sur Connecter vous permettra de vous connecter et de voir la liste des objets sur le serveur.

4. Maintenant, allez dans Sécurité> Connexions et ajoutez votre compte en tant qu'administrateur système, et mettez à jour le même mot de passe, en général, faites tout le nécessaire pour rendre votre instance gérable.

Connectez-vous et ajoutez votre compte en tant qu'administrateur système, et mettez à jour le mot de passe sa, en général, faites tout le nécessaire pour rendre votre instance gérable” width=”300″ height=”160″ title=””>

Cette méthode, bien qu'elle présente un certain nombre de limitations, mais vous permet de restaurer la gestion du serveur SQL sans arrêter le serveur de base de données.

Connecter l'instance SQL Server sans utiliser Management Studio - en utilisant SqlCmd