Je souhaite écrire un script pour créer un admin
utilisateur (avec abcd
mot de passe) dans SQL Server Express. Je souhaite également attribuer admin
tous les droits à cet utilisateur .
la source
Je souhaite écrire un script pour créer un admin
utilisateur (avec abcd
mot de passe) dans SQL Server Express. Je souhaite également attribuer admin
tous les droits à cet utilisateur .
Sur la base de votre question, je pense que vous pouvez être un peu confus au sujet de la différence entre un utilisateur et une connexion . Une connexion est un compte sur le serveur SQL dans son ensemble - quelqu'un qui est capable de se connecter au serveur et qui possède un mot de passe. Un utilisateur est un identifiant ayant accès à une base de données spécifique.
Créer un Login est facile et doit (évidemment) être fait avant de créer un compte utilisateur pour le login dans une base de données spécifique:
CREATE LOGIN NewAdminName WITH PASSWORD = 'ABCD'
GO
Voici comment créer un utilisateur avec les privilèges db_owner à l'aide du login que vous venez de déclarer:
Use YourDatabase;
GO
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'NewAdminName')
BEGIN
CREATE USER [NewAdminName] FOR LOGIN [NewAdminName]
EXEC sp_addrolemember N'db_owner', N'NewAdminName'
END;
GO
Maintenant, les connexions sont un peu plus fluides que je ne le fais paraître ci-dessus. Par exemple, un compte de connexion est automatiquement créé (dans la plupart des installations SQL Server) pour le compte Administrateur Windows lorsque la base de données est installée. Dans la plupart des situations, je l'utilise uniquement lorsque j'administre une base de données (elle a tous les privilèges).
Toutefois, si vous souhaitez accéder au serveur SQL à partir d'une application, vous souhaiterez configurer le serveur pour le «mode mixte» (connexions Windows et SQL) et créer une connexion comme indiqué ci-dessus. Vous accorderez ensuite des privilèges à cette connexion SQL en fonction de ce qui est nécessaire pour votre application. Voir ici pour plus d' informations.
MISE À JOUR: Aaron souligne l'utilisation de sp_addsrvrolemember pour attribuer un rôle préparé à votre compte de connexion. C'est une bonne idée - plus rapide et plus simple que l'octroi manuel de privilèges. Si vous recherchez sur Google, vous verrez de nombreux liens. Cependant, vous devez toujours comprendre la distinction entre une connexion et un utilisateur.
Droits d'administrateur complets pour l'ensemble du serveur ou une base de données spécifique? Je pense que les autres ont répondu pour une base de données, mais pour le serveur:
Vous devrez peut-être ignorer les paramètres CHECK_ en fonction de la version de SQL Server Express que vous utilisez (il est presque toujours utile d'inclure ces informations dans votre question).
la source
Si vous souhaitez créer un script générique, vous pouvez le faire avec une instruction Execute avec un Remplacer par votre nom d'utilisateur et le nom de la base de données
la source
Vous pouvez utiliser:
Pour créer la connexion (voir ici pour plus de détails).
Ensuite, vous devrez peut-être utiliser:
Pour créer l'utilisateur associé à la connexion pour la base de données spécifique, vous souhaitez leur accorder également l'accès.
(Voir ici pour plus de détails)
Vous pouvez aussi utiliser:
Pour configurer les autorisations pour les schémas auxquels vous avez attribué les utilisateurs.
(Voir ici pour plus de détails)
Deux autres commandes qui pourraient vous être utiles sont ALTER USER et ALTER LOGIN .
la source
cette aide complète vous pour le réseau en utilisant:
la source
La semaine dernière, j'ai installé Microsoft SQL Server 2014 Developer Edition sur ma boîte de développement et j'ai immédiatement rencontré un problème que je n'avais jamais vu auparavant.
J'ai installé plusieurs versions de SQL Server d'innombrables fois, et c'est généralement une procédure indolore. Installez le serveur, exécutez la console de gestion, c'est aussi simple que cela. Cependant, après avoir terminé cette installation, lorsque j'ai essayé de me connecter au serveur à l'aide de SSMS, j'ai eu une erreur comme celle ci-dessous:
Erreur de connexion SQL Server 18456 «Échec de la connexion pour l'utilisateur… (Microsoft SQL Server, erreur: 18456)» J'ai l'habitude de voir cette erreur si j'ai tapé le mauvais mot de passe lors de la connexion - mais ce n'est que si j'utilise le mode mixte ( Authentification Windows et SQL). Dans ce cas, le serveur a été configuré avec l'authentification Windows uniquement et le compte d'utilisateur était le mien. Je ne sais toujours pas pourquoi il n'a pas ajouté mon utilisateur au rôle SYSADMIN lors de l'installation; peut-être ai-je manqué une étape et oublié de l'ajouter. En tout cas, tout espoir n’a pas été perdu.
La façon de résoudre ce problème, si vous ne pouvez pas vous connecter avec un autre compte à SQL Server, consiste à ajouter votre connexion réseau via une interface de ligne de commande. Pour que cela fonctionne, vous devez être administrateur sur Windows pour le PC auquel vous êtes connecté.
Arrêtez le service MSSQL. Ouvrez une invite de commande en utilisant Exécuter en tant qu'administrateur. Accédez au dossier qui contient le fichier EXE de SQL Server; la valeur par défaut pour SQL Server 2014 est «C: \ Program Files \ Microsoft SQL Server \ MSSQL12.MSSQLSERVER \ MSSQL \ Binn». Exécutez la commande suivante: «sqlservr.exe –m». Cela démarrera SQL Server en mode mono-utilisateur. Tout en laissant cette invite de commande ouverte, ouvrez-en une autre en répétant les étapes 2 et 3. Dans la deuxième fenêtre d'invite de commande, exécutez «SQLCMD –S Server_Name \ Instance_Name» Dans cette fenêtre, exécutez les lignes suivantes, en appuyant sur Entrée après chacune d'elles: 1
Redémarrez le service MSSQL. C'est tout! Vous devriez maintenant pouvoir vous connecter en utilisant votre connexion réseau.
la source