sql-server - 只读用户的 SQL Server 权限以防止锁定

标签 sql-server locking

在 SQL Server 数据库中,有一个包含数百万条记录的表,该表经常插入新数据并使用新数据进行更新。

现在客户要求他们从这张表上写下他们自己的报告。

我非常担心他们没有正确编写报告,并且他们在长时间运行的报告上锁定了表格。

我可以给他们不能锁定表的凭据吗

即只能做类似WITH (NOLOCK)的脏读吗?

最佳答案

我想您可以在有问题的表上创建一个 View 并将 NOLOCK 添加到该查询。然后授予他们的用户帐户对 View 而不是基表的只读访问权限?

CREATE VIEW dbo.ReportingView
AS

SELECT COL1, COL2, COL3

FROM dbo.BASETABLE (NOLOCK)

关于sql-server - 只读用户的 SQL Server 权限以防止锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17189680/

相关文章:

python - 在哪些系统/文件系统上 os.open() 是原子的?

c# - C# 中的条件线程锁

python - 如何在不安装新软件包的情况下在 Windows 上执行文件锁定

mysql - 学习SQL : Narrowing down a grouped subquery

sql-server - 根据表和目标中的每个 SQL 语句导出平面文件

sql-server - Spring 批处理 : efficient way to query results of a stored procedure within a tasklet

sql - SQL 中一个 CASE 语句的两个或多个结果

.net-core - 如何使用 StackExchange.Redis 使多个操作原子化

mysql - 锁定库存表的表和/或事务?

sql - 如何使用sql表值参数来过滤结果?