【发布时间】:2014-05-27 21:11:06
【问题描述】:
我对 at this link 的例子感到困惑。 here 有一个类似的例子,但我更喜欢第一个。简要总结一下我的困惑:
- 根据证书创建用户 (examplecertuser)。
- 将权限授予从证书创建的用户 (examplecertuser)。
- 使用证书将签名添加到存储过程。
- 然后使用与先前无关的单独登录名 (testuser) 完成测试。这是我不明白的。
我不确定创建 examplecertuser 的原因或它的用途。更重要的是,由于登录 (testuser) 和证书创建用户 (examplecertuser) 之间没有建立连接,这意味着 ANY LOGIN 能够运行存储过程。我通过创建另一个登录名并让它也运行存储过程来验证这一点。
根据我阅读的所有建议,我正在研究这一点以避免数据库所有权链接。我的目标是授予用户运行跨多个数据库的存储过程的能力,但将它们限制为仅运行该存储过程。使用我看到的示例,我想我将授予每个人运行存储过程的能力,而无法限制其他人使用它。
用更直接的格式重新表述问题,“你如何使用链接中的示例只允许选定的登录名运行存储过程?”用户(examplecertuser)似乎是授权的关键,但我没有看到用户和登录之间的任何链接。
【问题讨论】:
标签: sql sql-server stored-procedures sql-server-2012