我们想引入一个外部编排器,以便从 SQL Server 上的两个存储过程中提供一些表。但是,我们需要为编排器创建一个“orchstr”用户。我们希望授予用户“orchstr”访问权限以仅执行两个指定的存储过程(因此对其他过程有限制)。并访问只能喂食的桌子。
可能吗?我们怎么能这样做?
我还是个初学者,如果你能帮助我,那就太好了。
我们有 SQL Server 2012 企业版。
我们想引入一个外部编排器,以便从 SQL Server 上的两个存储过程中提供一些表。但是,我们需要为编排器创建一个“orchstr”用户。我们希望授予用户“orchstr”访问权限以仅执行两个指定的存储过程(因此对其他过程有限制)。并访问只能喂食的桌子。
可能吗?我们怎么能这样做?
我还是个初学者,如果你能帮助我,那就太好了。
我们有 SQL Server 2012 企业版。
Bu默认,用户没有任何权限。因此,您所要做的就是授予您想要的权限:
我不明白您所说的“要喂的桌子”是什么意思。
如果 proc 对表(SELECT,INSERT ...)进行操作,那么对 proc 具有 EXEC 权限就足够了,您不需要表上的(SELECT,INSERT ...)权限来执行过程。这假设 proc 与表相同,称为“所有权链接”。
是的,很有可能。首先,您需要将该登录名添加为数据库中的用户,除了公共角色(也没有服务器角色)之外,没有分配任何明确的数据库角色。在数据库中将登录名添加为用户后,您需要执行授予权限,如下所示:
在上面的示例中,我认为您使用的是默认架构(dbo)。如果有非 dbo 架构,那么您需要相应地添加前缀。你可以在这里阅读更多。
希望这可以帮助。
如果您的存储过程中有多个对象。然后,您可以尝试在存储过程中使用 execute as owner 选项。无需为存储过程中使用的对象授予单独的权限。