首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >跨数据库访问SQL用户权限

跨数据库访问SQL用户权限
EN

Stack Overflow用户
提问于 2015-10-29 16:47:49
回答 2查看 1.1K关注 0票数 1

从这个链接中,我注意到向存储过程授予应用程序用户'execute‘权限就足够了。

但是,当过程从不同的数据库访问对象时,它将无法工作。

我们可以考虑两种可能的解决方案,包括为每个数据库创建一个SQL登录名和分配最低限度的权限集,以及

  1. 在实际访问其他数据库中的对象(可以是存储过程、表、视图等)之前使用作为“用户”执行。(即访问记录数据库之前的RecordsUser )
  2. 为每个数据库创建一个链接服务器,并在所需过程中引用该服务器。

除了这些以外,还有其他更好的解决办法吗?

EN

回答 2

Stack Overflow用户

发布于 2016-08-17 15:47:29

您正在陷入“以用户身份执行”的受限执行模型。这种沙箱是设计出来的,有两种可能的解决方案:

  • 将数据库标记为可信赖的(不推荐)
  • 使用代码签名(推荐但很难)

阅读更多信息:

票数 3
EN

Stack Overflow用户

发布于 2015-10-29 18:47:00

只有当查询需要访问另一台服务器时,才需要链接服务器,但是您不需要链接服务器来访问单独的数据库。

  1. 确保用户同时存在于Database1和Database2中。
  2. 确保用户对Database1和Database2脚本都具有执行权限。

您可以授予执行权限如下:

代码语言:javascript
代码运行次数:0
运行
复制
USE [Database1]
GRANT CONNECT TO [username];
GRANT EXEC ON [schema].[sp_name] TO [username];

USE [Database2]
GRANT CONNECT TO [username];
GRANT EXEC ON [schema].[sp_name] TO [username];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33420138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档