问题标签 [application-role]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1490 浏览

c# - 检测不可用的池化 SqlConnections

当我尝试使用sp_setapprole在 SqlConnection 上设置应用程序角色时,有时会在 Windows 事件日志中收到以下错误...

连接已被删除,因为打开它的主体随后假定了一个新的安全上下文,然后尝试在其模拟的安全上下文下重置连接。不支持此方案。请参阅联机丛书中的“模拟概述”。)

...并且在我的应用程序中引发了匹配的异常。

这些是池连接,并且曾经有一段时间连接池与应用程序角色不兼容 - 事实上,Microsoft 的旧建议是禁用连接池(!!) 但随着sp_unsetapprole的引入,现在(理论上)可以在将连接返回到池之前清理连接。

我相信这些错误发生在(出于未知原因)sp_unsetapprole 在关闭并返回到连接池之前未在连接上运行时。当这个连接从池中返回时,sp_approle 就注定会失败。

我可以捕获并处理此异常,但我更愿意检测即将发生的故障并完全避免异常(以及事件日志中的消息)。

是否可以在不引起异常的情况下检测到问题?

欢迎提出想法或建议。

0 投票
8 回答
2564 浏览

c# - 如何在异常发生之前检测到导致异常的情况?

我对这个问题没有运气,所以我制作了这个尽可能简单的测试用例来证明这个问题。

在下面的代码中,是否可以在尝试使用之前检测到连接不可用?

KABOOM 在 Windows 事件日志中显示为错误;

连接已被删除,因为打开它的主体随后假定了一个新的安全上下文,然后尝试在其模拟的安全上下文下重置连接。不支持此方案。请参阅联机丛书中的“模拟概述”。

...加上代码中的异常。

setAppRole 是一种在连接上设置应用程序角色的简单方法。它类似于这个...

在实际代码中,尝试在关闭连接之前使用sp_unsetapprole,但不能始终保证(继承的有缺陷的多线程应用程序)。无论如何,期望能够在引起爆炸之前检测到爆炸似乎仍然是合理的。

0 投票
1 回答
851 浏览

sql-server - 将 LINQ2SQL 数据上下文约束到特定的 SQL 应用程序角色

在 SQL Server 中,您可以拥有应用程序角色安全性,例如,您可以通过它授予源自特定应用程序的特定权限。

您可以执行 sp_SetAppRole() 来设置应用程序角色,但想知道在使用摩擦最小的 LINQ2SQL 数据上下文时如何实现这一点。

我看过这个链接: http ://social.msdn.microsoft.com/Forums/en-US/linqprojectgeneral/thread/e25e98a6-b0ac-42fc-b70c-2b269a7fa1cb但希望有更清洁的方法/

0 投票
2 回答
1290 浏览

c# - 是否可以使用 AzMan 对在运行时创建的对象进行基于角色的授权?

是否可以使用 AzMan 对在运行时创建的对象进行基于角色的授权?如果是,如何做到这一点?

例如:

如果在运行时创建了“CustomAlert”类的对象,我想看看我是否可以对“CustomAlert”类的不同对象有不同的规则。如果使用特定用户的身份创建对象,则该用户可以使用更多权限,认为他是对象的创建者/所有者。只有创建者/所有者可以修改对象。

0 投票
2 回答
586 浏览

java - JDBC set_approle

我正在尝试使用 prepareCall 通过 JDBC 连接设置应用程序角色。它似乎工作正常(即语法方面),但 SQL Server 2008 返回此错误:

我不是从存储过程或任何东西中触发它,只是直接从我的 JDBC 连接中触发,如下所示:

关于为什么这不起作用的任何想法?

0 投票
1 回答
1437 浏览

c# - SQL Server 连接上的应用程序角色是否处于活动状态?

我如何检查(以及哪个)应用程序角色对于到 sql 服务器的连接(DbConnection 对象)是否处于活动状态?

我的问题是,所有数据库对象都为我的应用程序角色授予了访问权限,但是在执行 select 语句时,我收到“拒绝访问”错误。我使用激活了应用程序角色的单个连接对象,但我担心 EntityFramework 或 DI 容器由于配置错误而创建另一个 DbConnection 对象。

0 投票
2 回答
2405 浏览

sql - 如何通过实体框架启用 SQL 应用程序角色

我现在正在使用实体框架开发大型政府应用程序。起初我有一个关于启用 SQL 应用程序角色的问题。使用 ado.net 我正在使用以下代码:

但是无论我搜索多少,我都找不到在 EF 上实现的方法。

另一个问题是:如何将应用程序角色添加到实体数据模型设计器?


我正在使用下面的代码执行 EF 参数:

当运行 ExecuteStoreCommand 这一行返回错误:

应用程序角色只能在 ad hoc 级别激活。

0 投票
1 回答
728 浏览

sql-server - NLog 数据库目标和 SQL Server 应用程序角色

我们正在现有应用程序中用 NLog 替换自定义日志记录“框架”。问题是应用程序使用 SQL Server 应用程序角色,这意味着每次打开到 SQL Server 的连接时,它都会执行sp_setapprole存储过程。

我们尝试在数据库目标配置中模拟这种行为:

但是,这会产生错误:

应用程序角色只能在 ad hoc 级别激活。

我宁愿避免编写自己的目标,因为数据库目标可以做我需要的一切,除了设置应用程序角色。所以我希望有可能以某种方式连接到由 NLog 在内部创建的连接的 StateChange 事件,或者做一些其他的技巧。

TL;DR - 通过 NLog 数据库目标记录时如何切换到应用程序角色?

0 投票
1 回答
200 浏览

sql - 使用应用程序角色更改用户密码

我正在为我的应用程序使用 SqlServer 和应用程序角色,但我在 SqlServer 中也有用户名。

使用应用程序角色时是否可以更改用户密码?
当我尝试更改用户密码时,我收到一个错误,即我无权更改它。

我授予应用程序角色更改权限,但没有帮助。

0 投票
3 回答
3027 浏览

sql-server - SQL Server 应用程序角色与常规登录和用户

使用 SQL Server 应用程序角色管理权限与使用标准登录名/用户并向所述用户授予必要权限相比有什么优势?

我们一直在使用需要以下场景的应用程序角色:

  1. 使用 SQL Server 登录名和密码连接到 SQL Server。
  2. 通过将角色名称和另一个密码传递给 sp_setapprole 来激活应用程序角色。

我看不出这比仅将应用程序角色的权限授予登录名/用户更好或更安全。应用程序必须可以使用这两个密码,并且任何可以访问登录密码的人都可以访问应用程序角色密码并从他们自己的程序或 SSMS 中调用 sp_setapprole。对?

编辑:正如 Ed Harper 推测的那样,应用程序的所有实例在我的场景中都使用相同的登录名。