2017-05-09 1 views
0

J'ai un identifiant de groupe qui a le rôle de serveur "dbcreator". Les utilisateurs de ce login ont été autorisés à s'exécuter sur "sp_delete_database_backuphistory" afin qu'ils puissent supprimer les bases de données des autres. Le problème est maintenant qu'il est possible pour ces utilisateurs de supprimer les bases de données créées par d'autres connexions. Y a-t-il une solution pour cela? Les autorisations peuvent-elles être définies, afin que ces utilisateurs SEULEMENT puissent supprimer les bases de données créées avec cette connexion?EXECUTION GRANT pour "sp_delete_database_backuphistory" pour le groupe d'utilisateurs

enter image description here

Répondre

0

Vous ne pouvez pas le faire directement, mais vous pouvez envelopper le sp_delete_database_backuphistory du système dans votre propre usp_delete_database_backuphistory qui peut appeler sp_delete_database_backuphistory ou retourner immédiatement en fonction d'un résultat de la vérification que vous souhaitez effectuer. Je ne peux pas vous demander dans un commentaire que voulez-vous dire 'bases de données créées par d'autres utilisateurs', d'abord seulement login (pas utilisateur) peut créer une base de données mais cette information (créateur db) vous ne pouvez pas extraire des métadonnées système vous pouvez obtenir est le propriétaire de la base de données actuelle et cela peut différer du créateur de la base de données. Je veux dire, quand vous créez une base de données, vous pouvez assigner explicitement d'autres identifiants pour posséder la base de données, ou vous pouvez le faire plus tard pour certaines raisons

+0

Salut sepupic :). J'ai modifié le texte original afin qu'il n'y ait aucune confusion à ce que j'essaie de réaliser ici. Je vais essayer de regarder dans votre suggestion et voir si c'est la solution que je cherche. Merci –

+0

Salut Peter, je répète le problème: une base de données n'a aucune idée de qui l'a créée, cette information n'est pas mémorisée dans les métadonnées de la base; la seule chose que vous pouvez vérifier est le propriétaire de la base de données, et le propriétaire peut être configuré pour n'importe quel login.I a un serveur où le propriétaire de toutes les bases de données est sa, mais un compte est désactivé, que devrait faire votre code un cas? Personne ne pourrait jamais supprimer l'historique des sauvegardes? – sepupic