J'ai créé une application pour utiliser SQL SMO pour rechercher tous les serveurs SQL, bases de données, travaux et résultats de travaux. Cette application est exécutée via une tâche planifiée à l'aide d'un compte de service local. Ce compte de service est local uniquement sur le serveur d'applications et n'est présent dans aucun serveur SQL Server à inspecter. Je rencontre des problèmes pour obtenir des informations sur les résultats d'un travail et d'un travail lors de la connexion aux serveurs à l'aide d'un utilisateur disposant des droits dbReader sur les tables système. Si nous configurons l'utilisateur sur sysadmin sur le serveur, tout fonctionne correctement.Droits minimum pour lire des travaux SQL à l'aide de SQL SMO
Ma question est la suivante: Quels sont les privilèges minimum qu'un utilisateur SQL Server local doit avoir pour se connecter au serveur et inspecter les travaux/résultats de travail à l'aide de l'API SQL SMO?
je me connecte à chaque serveur SQL en procédant comme suit:
var conn = new ServerConnection
{
LoginSecure = false,
ApplicationName = "SQL Inspector",
ServerInstance = serverInstanceName,
ConnectAsUser = false,
Login = user,
Password = password
};
var smoServer = new Server (conn);
Je lis les emplois en lisant smoServer.JobServer.Jobs et lire la propriété JobSteps sur chacun de ces emplois.
La variable serveur est de type Microsoft.SqlServer.Management.Smo.Server. utilisateur/mot de passe sont de l'utilisateur trouvé dans chaque SQL Server à inspecter. Si "user" est SysAdmin sur le serveur SQL Server à inspecter, tout fonctionne correctement, et si nous définissons ConnectAsUser sur true et que nous exécutons la tâche planifiée en utilisant mes propres informations d'identification, ce qui me confère des privilèges SysAdmin sur SQL Server par mes Adhésion à Active Directory
Merci!