Dans un autre bon article Résolution des problèmes: connexion à SQL Server lorsque les administrateurs système sont verrouillés , l'auteur nous dit que tout ce que nous avons à faire pour reprendre le contrôle de notre SQL Server est de
«Démarrez l'instance de SQL Server en mode mono-utilisateur en utilisant les options -m ou -f. Tout membre du groupe Administrateurs local de l'ordinateur peut ensuite se connecter à l'instance de SQL Server en tant que membre du rôle serveur fixe sysadmin. "
Malheureusement, ce que signifie démarrer en mode mono-utilisateur n'est pas une question intuitive. De plus, du moins d'après mon expérience, l'appartenance au groupe d'administrateurs local de mon ordinateur n'a pas accordé le statut d'administrateur système à mon compte "utilisateur".
Cette histoire avait commencé quand résoudre un problème d'appartenance à mon domaine par un serveur non DC (une conséquence du changement de FAI), j'ai reconstruit le DC dans Windows Server 2008 R2 à partir de 2008. Cela a résolu quelques problèmes mineurs mais n'a pas résolu la question de l'appartenance au serveur errant. Il a fallu un correctif suggéré dans ServerFault pour y parvenir (dans mon cas, il s'agissait de réinitialiser winsock et tcpip).
SQL Server 2008 réside sur ce deuxième serveur, désormais membre du domaine. Voici le problème. Comme quelqu'un le fait remarquer sur ServerFault, il est courant de pousser "laisser l'utilisateur actuel devenir sysadmin" lors de l'installation de Server 2008. Commune aussi pour ne considérer personne d'autre. Étant donné que cette identité d'utilisateur unique était membre d'un domaine d'un domaine qui n'existait plus, personne n'était autorisé à administrer Sql Server.
Je me suis connecté en tant qu'administrateur de serveur local qui existait lors de l'installation de Sql Server, mais bien que cela me permette d'accéder à Management Studio, j'ai rapidement découvert que BUILTIN \ Administrators n'avait que le rôle de serveur "public".
Après de nombreuses recherches et expérimentations, je suis tombé sur un article donnant les spécificités de la connexion à un seul utilisateur http://technet.microsoft.com/en-us/library/ms180965.aspx :
C:\>cd \Program Files\Microsoft SQL Server\MSSQL10_50.1\MSSQL\Binn
C:\...>sqlservr.exe -m
Pour vous préparer à cette étape, vous devez arrêter Sql Server (qui s'exécute par défaut dans la plupart des cas). Utilisez SQL Configuration Manager pour arrêter «Sql Server».
Ensuite, dans une invite de commandes, accédez à cet emplacement de fichier programme (ou équivalent sur votre ordinateur) et exécutez la commande "sqlservr.exe -m". Si vous voyez un flux d'activité enregistré dans votre invite de commande, vous réussissez. S'il ne démarre pas, vous avez probablement déjà SQL Server en cours d'exécution. Ferme-le.
Autorisez l'instance mono-utilisateur à attacher ses bases de données. Une fois l'activité du journal terminée, ouvrez Management Studio. Vous serez automatiquement en mode mono-utilisateur, et donc quel que soit le compte que vous représentez sera un administrateur système. Utilisez ce pouvoir pour ajuster les connexions de sécurité et les rôles de serveur.
Dans mon cas, j'ai dû recréer les comptes de domaine dans le nouveau domaine, puis supprimer leurs homonymes dans SQL Server et les reconstruire (en raison de la situation SID / GUID), en réaffectant des autorisations à des bases de données particulières si nécessaire.