【问题标题】:SQL Server Access Modifiers for a function函数的 SQL Server 访问修饰符
【发布时间】:2011-11-21 12:29:08
【问题描述】:

我在 SQL Server 2008 R2 上的数据库中有一个函数,它根据第一个参数调用另一个函数。

像这样:

SELECT dbo.usp_Function1('customerX', ...)

这会调用一个不同的函数usp_Function1CustomerX,它是特定于客户的。

问题是,我不希望任何人能够从数据库外部调用 usp_Function1CustomerX

更准确地说:我不希望从 Visual Studio 中的代码或任何 OR-mapper 中调用此函数。这就像我在 SQL Server 中的函数有一个(c# 术语)内部访问修饰符。

有什么想法可以做到这一点吗?

谢谢, 罗伯特

编辑将示例从存储过程更改为函数

【问题讨论】:

  • 你不是说存储过程吗?没有功能。在 SQL Server 中完全不同
  • 你是对的,它们是不同的。我确实需要它。我认为我的例子可能会导致一些混乱

标签: sql-server access-modifiers


【解决方案1】:

解决方案 1

每个 Sp 都有权限部分,您可以对其进行修改以适应。

解决方案 2

你可以给函数添加一个参数,它会在里面检查。

【讨论】:

  • 我可能误解了该函数的权限属性:我可以指定数据库角色(如公共、访客或特定用户)并设置权限,如 alter、control ... 等。我怎样才能改变对外部的可见性?解决方案2:您是否建议在特定参数中使用某种“神奇”值?
猜你喜欢
  • 2014-11-03
  • 1970-01-01
  • 2011-02-15
  • 2010-09-20
  • 2012-11-12
  • 2014-12-27
  • 2017-08-18
  • 2013-05-25
  • 2015-04-09
相关资源
最近更新 更多