SQL Server 用户失去查看权限
Posted
技术标签:
【中文标题】SQL Server 用户失去查看权限【英文标题】:SQL Server user lost access to view 【发布时间】:2022-01-22 20:16:06 【问题描述】:我遇到过用户意外失去对特定视图的访问权限。 我昨天掉线了,后来又重新创建了视图,这可能是原因吗?
【问题讨论】:
如果您删除了视图,则所有已授予从该视图读取的权限都将消失。重新创建后,您需要再次将这些权限授予相应的用户/组 “我昨天掉线了,后来又重新创建了视图,这可能是原因吗?” 是的。如果USER
之前有对 VIEW
的显式访问,而您 DROP
ped 了它,则您使用它删除了该显式访问。如果您没有将其添加回来,除非您再次 GRANT
它,否则他们将没有显式访问权限。
来自DROP VIEW (Transact-SQL) 文档:“当您删除视图时,视图的定义和有关视图的其他信息将从系统目录中删除。视图的所有权限也将被删除。”
“是否有可能改变这种行为?” 不,因为这是设计使然。另外,保留不存在的对象的权限没有任何意义。
不要删除和创建视图,而是使用ALTER VIEW
。这将保留权限。
【参考方案1】:
如 cmets 中所述,删除数据库对象时也会删除对象权限。重新创建对象后需要重新授予权限。
考虑使用 ALTER VIEW 而不是 DROP/CREATE。 ALTER 将保留现有的查看权限。
【讨论】:
以上是关于SQL Server 用户失去查看权限的主要内容,如果未能解决你的问题,请参考以下文章