Récemment mis à niveau vers SQL Server 2008 R2 Express. Lorsque j'essaie de créer une base de données après m'être connecté à l'aide de l'authentification Windows avec mon identifiant myuser, je reçois cette erreur:
Une exception s'est produite lors de l'exécution d'une instruction ou d'un lot Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)
Autorisation CREATE DATABASE refusée dans la base de données 'master'. RESTORE HEADERONLY se termine anormalement Erreur 262
Si j'essaie d'ajouter le rôle sysadmin à mon utilisateur, voici l'erreur que je reçois:
Échec de l'ajout d'un membre pour ServerRole 'sysadmin'. (Microsoft.SqlServer.Smo)
Une exception s'est produite lors de l'exécution d'une instruction ou d'un lot Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)
L'utilisateur n'est pas autorisé à effectuer cette action Erreur 15247
Si j'essaie d'ajouter ce rôle à mon utilisateur avec T-SQL, à l'aide de cette commande,
EXEC sp_addsrvrolemember 'ziffenergy\myuser', 'sysadmin';
GO
Voici l'erreur que je reçois:
Msg 15247, niveau 16, état 1, procédure sp_addsrvrolemember, ligne 29
L'utilisateur n'est pas autorisé à effectuer cette action.
Est-ce que quelqu'un a des suggestions? Il semble que je ne puisse rien faire avec la base de données sur la machine locale. Veuillez noter que je suis l'administrateur du poste de travail Windows 7 que j'utilise et que si j'essaie de créer ou de modifier des bases de données et/ou des utilisateurs sur notre serveur de base de données IT Test Network à l'aide de SQL Server Management Studio, je peux le faire sans problème.
Vous pouvez être administrateur sur le poste de travail, mais cela ne signifie rien pour SQL Server. Votre identifiant doit être membre du rôle sysadmin pour effectuer les actions en question. Par défaut, le groupe d'administrateurs locaux n'est plus ajouté au rôle sysadmin dans SQL 2008 R2. Vous devrez vous connecter avec autre chose (sa par exemple) afin de vous accorder les autorisations.
Venir tard à la fête, mais j'ai trouvé cela guide étape par étape fantastique sur la prise de contrôle de votre instance SQLExpress si vous n'avez pas votre mot de passe sa. J'ai utilisé ce processus non seulement pour réinitialiser mon mot de passe sa, mais j'ai également ajouté mon compte de domaine à tous les rôles de serveur disponibles. Je peux maintenant créer des bases de données, modifier les connexions, effectuer des opérations en masse, des sauvegardes/restaurations, etc. en utilisant ma connexion normale.
Pour résumer, vous utilisez SQL Server Configuration Manager pour mettre votre instance en mode mono-utilisateur. Cela vous élève à sysadmin lorsque vous vous connectez, vous permettant de tout configurer.
Edit: j'ai copié les étapes ci-dessous - bravo à l'auteur d'origine du lien ci-dessus.
Dans SSMS 2012, vous devrez utiliser:
Pour activer le mode mono-utilisateur, dans les propriétés d'instance SQL, NE PAS aller à la balise "Advance", il existe déjà une balise "Startup Parameters".
J'ai suivi les étapes de la réponse de killthrush et à ma grande surprise, cela n'a pas fonctionné. En me connectant en tant que sa, je pouvais voir mon utilisateur de domaine Windows et en avais fait un administrateur système, mais lorsque j'ai essayé de me connecter avec l'authentification Windows, je ne pouvais pas voir ma connexion sous les connexions, je ne pouvais pas créer de bases de données, etc. Ensuite, cela m'a frappé. Cette connexion était probablement liée à un autre compte de domaine avec le même nom (avec une sorte d'ID interne/caché qui n'était pas correct). J'avais quitté cette organisation il y a quelque temps, puis je suis revenu des mois plus tard . Au lieu de réactiver mon ancien compte (qu'ils auraient pu supprimer), ils ont créé un nouveau compte avec le même domaine\nom d'utilisateur et un nouvel ID interne. En utilisant sa, j'ai supprimé mon ancienne connexion, l'ai à nouveau ajoutée avec le même nom et ajouté sysadmin. Je me suis reconnecté avec Windows Auth et tout semble comme il se doit. Je peux maintenant voir mes connexions (et d'autres) et faire tout ce que je dois faire en tant qu'administrateur système en utilisant ma connexion d'authentification Windows.
J'ai 2 comptes sur ma machine Windows et je rencontrais ce problème avec l'un d'eux. Je ne voulais pas utiliser le compte sa
, je voulais utiliser la connexion Windows. Il n'était pas immédiatement évident pour moi que je devais simplement me connecter à l'autre compte que j'avais utilisé pour installer SQL Server et ajouter les autorisations pour le nouveau compte à partir de là
(SSMS > Security > Logins > Add a login there)
Un moyen facile d'obtenir le nom de domaine complet dont vous avez besoin pour y ajouter un écho cmd ouvert.
echo %userdomain%\%username%
Ajoutez un identifiant pour cet utilisateur et donnez-lui toutes les autorisations pour la base de données master et les autres bases de données que vous souhaitez. Quand je dis "toutes les autorisations", assurez-vous de ne vérifier aucune des autorisations "refuser" car cela fera le contraire.