【发布时间】:2019-07-20 19:48:02
【问题描述】:
情况:
我有各种用户被允许对数据库进行只读访问。
是否可以使用 Excel 中的范围通过存储过程向数据库插入行?
如果是,谁能帮我提供一个示例 VBA 或 SQL 脚本?
【问题讨论】:
-
是的,您可以创建一个将行插入到表中的存储过程,并且只授予用户从表中读取和执行该过程的权限。要求是过程的所有者也是相关表的所有者,在这种情况下不检查权限。
-
@GSerg 我有点困惑,也许我只是需要一杯咖啡,但如果你是一张桌子的主人,那么你就不能完全访问那张桌子吗?我觉得成为一张桌子的主人却无法访问我自己的桌子很奇怪。
-
@Pᴇʜ 如果作为表的所有者,您还创建了一个插入该表的存储过程,并将其上的
execute授予其他人,他们将能够调用它并让它插入,即使他们没有直接插入的权限。该过程在 他们的 安全上下文中执行,并且插入成功是因为未执行权限检查(这是因为您拥有该过程和表),而不是因为他们“以您的身份”执行它。 -
@GSerg 啊,现在很清楚了。谢谢你的解释。