Accorder l'autorisation SELECT sur la vue, mais pas sur les objets sous-jacents
J'ai souvent lu que l'un des buts de VUE, c'est la sécurité: afin de permettre à certains utilisateurs d'accéder à la table sous-jacente, et d'autres utilisateurs d'un dérivé de vue seulement. Avec cela à l'esprit, j'ai conçu plusieurs points de vue que l'offre limitée des jeux de données pour les utilisateurs externes.
Tous très bien, mais en pratique cela ne fonctionne pas. Après je vous l'accorde SELECT
de la permission d'un point de vue, les utilisateurs ne peuvent pas y accéder, à moins que j'accorde SELECT
sur tous les objets sous-jacents trop. Même histoire pour les procédures stockées. Le résultat net est non-fonctionnel, pour que je me retrouve encore l'octroi de l'accès à des données sensibles à la mauvaise utilisateurs, ainsi que gênant, car il est facile d'oublier un objet et les utilisateurs de revenir pour se plaindre que le point de vue "ne fonctionne pas".
Est-il un moyen de subvention SELECT
autorisations sur une vue ou d'une procédure stockée sans avoir à exposer les objets sous-jacents trop?
- Voir stackoverflow.com/questions/368414/...
- Oui, j'ai d'abord pensé que ce n'était pas mon problème. Mais c'est 😉
Vous devez vous connecter pour publier un commentaire.
Le même utilisateur qui est propriétaire de la vue aussi propre, les tables sous-jacentes? Si non, le propriétaire des tables doit accorder la vue titulaire de l'autorisation with GRANT OPTION. Si le même utilisateur possède à la fois les tables et la vue, puis l'octroi de l'autorisation sur la vue doit être suffisante.
Si vous avez votre point de vue à un autre schéma que celui de la table, vous devez accorder à l'utilisateur d'accéder à la table de base, "AUTORISER" le propriétaire des tables, afin de l'afficher comme ceci:
Dans l'exemple ci-dessus
dbo
est l'utilisateur possédant les tables de lareporting.MyViewName
est l'accèsVous pouvez trouver les informations dans ce forum utile.
Le dernier post a les détails de ce qui a été exécuté pour accorder des autorisations à un point de vue, mais pas les tables sous-jacentes:
FYI - Pour les procédures stockées, vous devriez être à l'octroi de l'EXEC de la procédure.