sql – 在视图上授予SELECT权限,但不对基础对象执行SELECT权限

前端之家收集整理的这篇文章主要介绍了sql – 在视图上授予SELECT权限,但不对基础对象执行SELECT权限前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我经常阅读VIEW的一个目的是安全性:允许一些用户访问基础表,而其他用户只能访问衍生视图.考虑到这一点,我设计了几个视图,为外部用户提供受限制的数据集.

一切都很好,但实际上这不行.在视图授予SELECT权限之后,用户不能访问它,除非我在所有底层对象上同时授予SELECT.相同的故事存储过程.最终的结果是无效的,因为我最终仍然允许访问错误用户的敏感数据,以及烦人的,因为很容易忘记一个对象,用户回来抱怨视图“不工作”.

有没有办法在视图或存储过程上授予SELECT权限,而不必暴露底层对象?

解决方法

拥有该视图的同一用户是否拥有基础表?如果不是,表的所有者需要授予视图所有者权限与GRANT选项.如果相同的用户拥有表和视图,则对视图授予权限应该是足够的.

猜你在找的MsSQL相关文章