【问题标题】:Microsoft SQL Server multiple locksMicrosoft SQL Server 多重锁
【发布时间】:2012-10-18 22:29:03
【问题描述】:

我目前正在运行 Microsoft SQL Express Server。 当一个用户执行查询而不提交它时,它会锁定整个表。 问题是恶意用户可能会故意“破坏”数据库。 我怎样才能防止这种情况发生?

【问题讨论】:

  • 需要更多信息。它是什么类型的查询?他们如何在不提交的情况下运行查询?
  • 他们使用 pyodbc,执行 res = con.execute('insert into mytable...'),此时表被锁定,直到他们 res.commit()。
  • 这是程序员还是用户锁表?在调用 commit 之前,您是否在等待用户执行操作?
  • 这些是程序员,他们可以随时决定锁定该表。是否可以在表上设置锁定超时或类似的东西?

标签: sql sql-server locks


【解决方案1】:

您需要了解数据库隔离级别http://en.wikipedia.org/wiki/Isolation_(database_systems)。很可能您正在运行可序列化的查询,这将产生这种效果。尝试提交一些代码。

【讨论】:

    猜你喜欢
    • 2022-12-20
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多