【发布时间】:2013-07-23 23:53:11
【问题描述】:
我目前使用的是 SQL Server 2012,我有一个关于具有不同访问权限的跨架构访问的问题:
假设我有两个架构:UserSchema 和 TableSchema。
TableSchema 包含 2 个表,并且该模式只能由管理员用户访问,用于读取、更新等。
UserSchema 可以被具有 SELECT 权限(或任何你称之为阅读权限)的用户访问。此架构包含一个视图,该视图应该从 TableSchema 中的两个表中选择数据。
我的想法是 UserSchema 的用户应该只能访问 UserSchema,但不能访问 TableSchema。这会奏效吗?还是因为没有直接从表中读取数据的权限而无法查询视图? 是否有一个很好的解决方案来解决这个问题,还是我必须忘记这个想法并让用户也可以读取 TableSchema?
主要问题的答案可能很明显,但我在尝试 google 时似乎发现了一些不同的答案,所以这或多或少是一个确认或反驳这个想法的是或否问题。
【问题讨论】:
-
我很确定您需要授予“所有表”的权限,即视图和视图中使用的表。或者您可以使用存储过程并更改其执行上下文来解决此问题。
标签: sql-server database view schema access-rights