Je souhaite accorder des permissions de lecture à un user pour une vue qui joint deux tables d'une autre database. Je ne veux pas:
truncate
et une procédure stockée qui insère datatables sur un triggersur. Cela peut-il être fait d'une manière ou d'une autre? Peut-être qu'il y a quelque chose que j'ai raté et que vous pourriez savoir.
J'ai lu ces messages mais ils n'ont pas résolu mon problème: Accorder l'autorisation SELECT sur une vue, mais pas sur les objects sous-jacents
Accorder une sélection sur une vue et non sur une table de base lorsque la table de base se trouve dans une database différente
https://msdn.microsoft.com/en-us/library/ms188676.aspx
https://dba.stackexchange.com/questions/89632/sql-server-grant-select-access-to-a-user-in-a-view-and-not-in-its-tables
Je vous remercie
Edit: La solution la plus simple que je suis venu, après quelques searchs, est l'activation de l'option de cross database ownership chaining
sur la database où je place les vues et accorde l'autorisation de lecture aux users. Cela pourrait être en contraste avec mon deuxième point que j'essaie d'éviter. Est-ce une bonne idée?
Donnez-leur une connection à une autre database sur le même server et incluez seulement votre vue unique, avec la vue pointant vers votre database sécurisée. Ne lui donnez pas access à tout sauf à la database avec la vue, et ne lisez que l'access à cette seule vue. Évidemment, vous devrez qualifier complètement votre nom de table (par exemple, à from SourceDB.dbo.SomeSecretTable
).
Ce que j'ai fini par faire:
Impossible de find une solution pour ma question d'origine sans le groupe AD.