ne peut pas ajouter un utilisateur au rôle sysadmin dans SQL Server

9

J'utilise SQL Server 2008 Management Studio. Le compte de connexion actuel appartient au groupe d'administrateurs locaux de l'ordinateur. J'utilise le mode de sécurité intégrée de Windows dans SQL Server 2008.

Mon problème est, après la connexion à SQL Server Management Studio, je sélectionne mon nom de connexion sous Sécurité / Connexions, puis sélectionnez l'onglet Rôles du serveur, puis sélectionnez le dernier élément - sysadmin pour me faire appartenir à ce groupe / rôle, mais il dit que je n'ont pas assez de permission. Des idées ce qui ne va pas? Je pense que l'administrateur local devrait pouvoir faire n'importe quoi. :-)

George2
la source
voici ce que Microsoft fournit à propos de ce problème: msdn.microsoft.com/en-us/library/dd207004.aspx je peux recommander ce script: archive.msdn.microsoft.com/addselftosqlsysadmin/Release/…

Réponses:

6

La connexion de la session où vous essayez de définir des autorisations doit avoir des autorisations.

Ainsi, la connexion que vous utilisez est un administrateur local? Cela signifie que le groupe d'administrateurs local ne dispose pas de droits suffisants.

L'interface graphique l'exécutera également sp_addsrvrolemember . Bien que cela indique

Nécessite l'appartenance au rôle auquel le nouveau membre est ajouté.

Ainsi, le groupe d'administrateurs local n'est pas membre de sysadmin.

Éditer:

Pour résoudre: Utilisez une connexion qui a des droits. vous pouvez en trouver un en utilisant sp_helpsrvrolemember

gbn
la source
Quel est votre conseil pour résoudre mon problème?
George2
Je ne sais pas s'il y a des solutions ou des solutions sans réinstaller tout SQL Server 2008 à nouveau! :-(
George2
"Utiliser un identifiant disposant de droits" - comment obtenir une liste des identifiants disposant des autorisations suffisantes?
George2
Merci, je trouve que le seul membre répertorié de EXEC sp_helpsrvrolemember 'sysadmin' s'appelle sa, est-ce un utilisateur Windows? Je ne trouve pas un tel utilisateur dans la liste des utilisateurs Windows. Des idées?
George2
1
C'est une connexion SQL réservée, pas un utilisateur Windows. Lors de mon test d'installation de SQL 2008, le compte qui a installé SQL Server est répertorié.
gbn
4

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.

Michael Broschat
la source
Il existe également une autre façon de définir les paramètres: ouvrir le service, le gestionnaire, sélectionner le service, puis les propriétés dans le menu contextuel. Dans l'onglet général, il y a une édition "Paramètres de démarrage" Saisissez-y les paramètres nécessaires. Ensuite, démarrez le service à l'aide du bouton de démarrage de cette page , les paramètres qui y sont définis ne sont pas permanents et valides uniquement lorsque le service est démarré à partir de la boîte de dialogue Propriétés.
ldsandon
3

SQL Server 2008 n'ajoute plus BUILTIN \ Administrators en tant que membres du rôle serveur fixe sysadmin

C'est vrai, MAIS dans ce cas, vous pouvez récupérer de cette situation en démarrant le service SQL Server en mode mono-utilisateur (mode d'urgence), et tout administrateur local pourra se connecter.

Voir MSDN .

abatishchev
la source
2

Par défaut, SQL ajoute le groupe BUILTIN \ Administrators au rôle sysadmin, ce qui signifie que tout administrateur NT local est automatiquement un administrateur sys SQL. Sous Vista, en raison de l'UAC, vous devez exécuter en mode «en tant qu'administrateur» pour bénéficier de ce privilège.

  • Si vous êtes sous Vista, exécutez l'outil client (SSMS) «en tant qu'administrateur», puis essayez de vous ajouter en tant qu'administrateur système.
  • Si le groupe BUILTIN \ Administrators a été supprimé accidentellement du rôle sysadmin, vous devez vous connecter avec une autre connexion sysadmin. S'il n'y a pas d'autre connexion sysadmin, vous devez vous connecter avec l'authentification SQL en tant que sa et utiliser le mot de passe sa qui a été défini lors de la configuration. Une fois connecté en tant que membre de sysadmin, annonce BUILTIN \ Admisnitrators de nouveau au rôle sysadmin. Si les connexions SQL sont désactivées, félicitations, il vous suffit de vous verrouiller hors de l'installation SQL.
  • Si le groupe BUILTIN \ Administrators a été supprimé intentionnellement du rôle sysadmin (conformément à KB932881 ), vous essayez de pirater le système auquel vous n'êtes pas autorisé.
Remus Rusanu
la source
Salut Remus, je suis confus que pendant le processus d'installation, je ne configure aucun mot de passe pour sa, y a-t-il un mot de passe par défaut?
George2
Une autre confusion provient de l'exécution de la procédure de magasin sp_helpsrvrolemember pour trouver tous les utilisateurs du rôle sysadmin, seul sa est répertorié, aucun autre utilisateur du groupe adminsitrator de la machine locale, aucune idée pourquoi?
George2
Il n'y a pas de mot de passe par défaut pour sa. Le mot de passe de sa est défini lors de la configuration, si l'authentification mixte est activée. Vous devrez demander à l'administrateur de votre base de données de vous accorder l'accès si vous en avez besoin.
Remus Rusanu
"Si les connexions SQL sont désactivées, félicitations, vous vous verrouillez simplement hors de l'installation SQL." Dans ce cas, consultez la réponse de Jordi ci-dessous pour démarrer SQL Server en mode mono-utilisateur.
Michiel van Oosterhout
1

Par défaut, SQL Server 2008 n'ajoute plus BUILTIN \ Administrators en tant que membres du rôle serveur fixe sysadmin. Lorsque vous passez par le programme d'installation, il vous demande quel compte ou quels comptes doivent avoir les droits d'administrateur système. Il y a un bouton qui dit essentiellement "faites-moi un administrateur système" qui ajoutera le compte de l'utilisateur effectuant l'installation en tant qu'administrateur système.

S'ils n'ont ajouté aucun autre utilisateur en tant qu'administrateur système, seul cet utilisateur est actuellement un administrateur système. Vous devrez demander à cette personne de se connecter à SQL Server et d'accorder les droits d'administrateur système aux administrateurs de base de données.

mrdenny
la source
0

J'ai réfléchi au même problème après une nouvelle installation jusqu'à ce que j'enregistre le serveur, sur SQL Server 2008, puis tout s'est déroulé comme il se doit


la source