J'écris un programme qui me demande d'attribuer toutes les autorisations et tout dans le code. Je me suis coincé dans cette partie:
Je veux juste faire l'équivalent de cliquer sur la petite case sous "Carte" pour la base de données msdb et d'affecter cet utilisateur au rôle SqlAgentUser. J'ai besoin d'un utilisateur pour pouvoir ajouter/modifier des travaux de l'Agent SQL Server. Je peux obtenir les bons paramètres en utilisant SSMS mais je ne peux pas pour la vie de moi comprendre comment le faire en SQL brut.
J'ai examiné ALTER LOGIN mais je ne vois rien qui fasse ce dont j'ai besoin. Je soupçonne que je ne connais pas les termes corrects pour Google. Je ne fais pas normalement ce genre de choses.
Toute aide est très appréciée!
USE msdb;
GO
CREATE USER shims FROM LOGIN shims;
GO
ALTER ROLE SqlAgentUserRole ADD MEMBER shims;
GO
De plus, pour référence future, chaque fois que vous savez comment faire quelque chose dans l'interface utilisateur mais pas dans un script, c'est à cela que sert l'option Script
de la plupart des boîtes de dialogue - elle vous montrera quel script SSMS aurait exécuté :
Si vous souhaitez changer la base de données actuelle\par défaut en une autre, essayez:
alter login <loginname> with default_database = <dbname>;
Maintenant, créez un utilisateur pour la connexion ci-dessus créée
use <dbname>;
create user <username> from login <loginname>;
Et maintenant, vous pouvez attribuer des rôles à l'utilisateur de création ci-dessus pour la connexion comme ci-dessous:
use <dbname>
exec sp_addrolemember 'db_owner', '<username>';