【问题标题】:How does SQL Server determine if stored procedures are valid for "readonly" application intent?SQL Server 如何确定存储过程对于“只读”应用程序意图是否有效?
【发布时间】:2017-12-09 17:42:23
【问题描述】:

sys.dm_exec_describe_first_result_set_for_object 函数接受一个对象(例如存储过程)并确定第一个结果集的属性。

是否有类似的函数可以显示一个过程是否为“只读”,这可能表明它可以与连接字符串中的ApplicationIntent=readonly 一起正确使用?

【问题讨论】:

  • AFAIK,没有。考虑到 procs 可能包含动态 SQL 或嵌套,因此确定 proc 是否实际更改数据是一个挑战。
  • @DanGuzman,我在想,如果 SQL Server 知道何时可以安全地在辅助只读服务器上运行 proc,它可能会以某种方式将该信息暴露给客户端。如果applicationintent 只是一个提示,那么我想知道为什么我不想将它放在每个连接字符串上,希望服务器会在辅助服务器上放置只读调用。

标签: sql-server tsql readonly


【解决方案1】:

有趣的问题。 SQL Server 不会将对象标记为只读,即在用户权限级别设置。 ApplicationIntent=readonly 似乎正在处理您正在运行可用性组并且通常具有用于报告的只读副本的情况。然后它将路由到该服务器。

Read Only Application Intent

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多