sql-server - 如何在可信连接的SQL Server 上模拟用户权限问题?

标签 sql-server testing user-roles

我开发了一个小型 C# 实用程序,用于执行数据验证、清理和导出。现在我正在为用户编写手册,我想模拟用户可能没有足够的权限对​​特定表执行某些数据库操作(SELECT 或 UPDATE)的情况。

该实用程序非常小,通过使用到数据库的受信任连接仅依赖于当前用户的 Windows 凭据,这意味着它使用从 AD 传播的我的 Windows 帐户的凭据。我对数据库服务器拥有全部权限,但我无法撤销自己的某些权限或将我的登录名映射到另一个权限较低的数据库用户,因为我的登录名已经映射到 dbo 并且我无法取消映射(错误消息如果我尝试,就会出现“无法删除 dbo 用户”。

那么,我该如何模拟我的实用程序缺少必要的权限呢?

最佳答案

您可以在测试中创建并抛出 SqlException 以模拟无权执行特定操作的情况。

您需要使用一些反射(检查 this 以获取辅助类)以将正确的错误添加到异常的 Errors 属性中。

关于sql-server - 如何在可信连接的SQL Server 上模拟用户权限问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13589835/

相关文章:

sql-server - SQLServer 复制能否仅限于数据库中的一组特定表?

mysql - 关系数据库 : Current Data vs. 历史数据,最佳实践

android - 使用 ParseRoles 管理组间的管理员用户角色

c# - MVC3 中的角色管理

sql - 在 INNER JOIN 条件下使用 'OR' 是一个坏主意吗?

unit-testing - 如何测试 N 秒后是否未调用方法?

amazon-web-services - 我应该如何测试我的 "Serverless"(API Gateway/Lambda/ECS) 应用程序?

ruby - 在 Ruby 中测试标准输入

Azure AD 身份验证并将角色分配给应用程序用户

sql - 按组中的最大值排序