问题标签 [single-user]

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 投票
0 回答
367 浏览

sql - SQL Server 在 auto_update_statistics_async 上停留在 single_user

在线书籍状态

在将数据库设置为 SINGLE_USER 之前,请验证 AUTO_UPDATE_STATISTICS_ASYNC 选项是否设置为 OFF。当设置为 ON 时,用于更新统计信息的后台线程与数据库建立连接,您将无法在单用户模式下访问数据库。

我是在事后才知道这一点的。我现在该怎么办,当关闭整个实例不是一个选项时,因为上面还有关键数据库?

我没有权限杀死统计信息更新似乎使用的“sa”登录任务管理器进程,甚至尝试了一个蛮力技巧,我只是尝试进入数据库大约 3000 次排了几次,没用。

即使我有 VIEW SERVER STATE 权限,我也可以通过查询 sys.dm_exec_background_job_queue 看不到任何统计作业,所以KILL STATS JOB似乎没有帮助。

任何建议表示赞赏,谢谢。

0 投票
4 回答
4877 浏览

sql - 如何返回多用户模式

这是我的查询:

将数据库设置回的最佳方法是什么multi_user?恐怕最直接的方法可能会导致

数据库“MyDatabase”已经打开,一次只能有一个用户。

例外。

通过最直接的方式,我的意思是这个:

0 投票
4 回答
7582 浏览

sql-server - 通过管理工作室将数据库设置为 multi_user

我必须将我的数据库设置为 single_user 模式才能进行dbcc checkdb修复,现在我无法将我的数据库恢复为 multi_user。我已经在针对主数据库的查询窗口中尝试了以下命令,但它没有按照另一个堆栈溢出帖子的建议工作:

我收到以下错误:

消息 5064,级别 16,状态 1,第 2 行此时无法更改数据库“mydb”的状态或选项。数据库处于单用户模式,并且当前有一个用户连接到它。
消息 5069,级别 16,状态 1,第 2 行 ALTER DATABASE 语句失败。

如果我右键单击数据库并尝试选择属性,那么它会出错,说它已经在使用中。

任何帮助将不胜感激。

0 投票
1 回答
1061 浏览

sql-server - SQL Server - 单用户模式 ​​- 保留哪个用户

问题

有没有办法在将数据库置于单用户模式时指定该用户(在我的情况下是当前用户),并确保即使在该用户断开连接后,单个会话仍为该定义的用户保留;也就是说,它是真正的单用户而不是单并发用户?

背景

给出一些背景...

我们有一些脚本可以在我们的测试环境中刷新数据。最近一个失败,错误指出运行脚本的用户帐户无权访问数据库。经调查,该用户是数据库的系统管理员;所以这显然不是真的。但是,我发现该脚本将数据库置于Single User模式。查看数据库上的活动会话时,我可以看到单个用户与预期帐户不同(而是属于间歇性轮询该数据库的系统的另一个服务帐户)。我的假设是发生了以下情况:

  • 脚本以 UserA 身份运行
  • 脚本将 DB 置于单用户模式
  • 脚本执行一些查询/ies
  • 脚本在执行其他一些任务时关闭当前连接
  • UserB 尝试连接数据库;成功,因为 UserA 会话现已关闭
  • UserB 的会话保持打开状态(因为 UserB 是具有连接池的服务,即使在操作完成后会话保持打开状态)。
  • UserA 尝试重新连接到 DB;访问被拒绝,因为 UserB 进行了单个会话

有各种可能的解决方案。

  • 重写脚本以保持持久连接(可能需要付出很多努力,尤其是在我不熟悉代码的情况下)
  • 禁用所有可能尝试间歇性连接的服务(有点破坏了使用单用户模式的意义/还有很多额外的努力来调查所有可能连接的帐户,并保持这一点)
  • 在脚本中添加一个捕获以终止竞争的 SPID,从而回收单个用户会话(我不喜欢终止 SPID,因为这会影响事务完整性)
  • 使用魔法(即看到这个问题的公认答案;希望如此)

更新

该代码使用 PowerShellInvoke-SqlCmd为每个命令运行创建和删除连接;因此,一旦将数据库置于单用户模式,连接就会断开。我查看了这个命令参数,看看是否有用于池/持久连接的选项,但我能找到的最接近的是DedicatedAdministratorConnection,我似乎应该避开(http://www.brentozar.com/archive/2011/ 08/dedicated-admin-connection-why-want-when-need-how-tell-whos-using/)尽管我最初抱有希望。

0 投票
1 回答
524 浏览

ruby-on-rails - 如果多次登录,则强制注销

如何配置 Devise,以便如果用户从另一台设备(不是 Devise!)登录并且未能从该另一台设备注销,这样会询问用户是否应该强制注销 OTHER 登录?

我假设 Devise 可以检测到即将创建一个新会话。我的假设正确吗?

基本上,我只需要一个用户登录就可以随时使用我的应用程序。这可能吗?也就是说,如果我有两个有效用户 x1@xyz.com 和 x2@abc.com,这两个用户可以同时登录,但 x1@xyz.com 和 x2@abc.com 只能分别登录一次。

0 投票
1 回答
6422 浏览

postgresql - 如何退出 postgres 的单用户模式?

我已进入 postgres 的单用户模式

我可以使用什么命令来关闭单用户模式并返回到正常的$命令提示符?


该命令\q可以从psqlrepl 退出,但是相同的命令似乎不适用于 postgres 单用户模式,即

0 投票
1 回答
24 浏览

ssis - 循环通过 DB 列表设置 DB 到单用户模式

我正在尝试创建一个动态 SQL 语句以将数据库设置为单用户模式,以便稍后我可以对其进行还原。我在一个循环中放置了一个执行 SQL 任务,其中一个参数用于提供下一个数据库的名称以设置为单用户模式。但是,我不确定 Execute SQL 是否可以运行 DML 或仅运行 SQL,并且我不确定它是否可以在循环中动态完成。这是我在 SQL Execute 任务中的代码。

DECALRE @SQLString nvarchar(200)

SET @SQLString = 'ALTER DATABASE [' + ? + '] ' + '设置单个用户立即回滚'

执行(@SQLString)

问号是我设置为单用户模式的数据库名称的 OLEDB 占位符。

这是在 SQL2012 上

0 投票
1 回答
119 浏览

sql-server - SQL Server 数据库在测试中不断设置 SINGLE_USER

我有 2 个托管自己的服务器的 docker 容器。我还有一个托管 SQL Server 数据库的第三个 docker 容器。每台服务器都访问这个数据库。

我的 DB docker 容器在 docker-compose.yml 中配置如下:

每个服务器连接字符串(它们是 .NET 服务器)都是

当我运行测试时,我从数据库的 docker 容器中获得了一个日志,上面写着它正在设置 SINGLE_USER 模式。这显然破坏了我的测试,因为两台服务器都必须访问它。

我尝试使用数据库浏览器设置 MULTI_USER 在哪个工作......直到测试开始......然后测试套件中的数据库或其他东西将其切换回 SINGLE_USER。

如何通过 docker compose、dockerfiles 或其他任何方式配置它以不设置 SINGLE_USER 模式或专门设置 MULTI_USER 模式?

以防万一:我还使用 Selenium 进行测试,使用 circleci 进行测试自动化。

0 投票
0 回答
102 浏览

sql-server - 设置单用户模式后死锁

我们有一些在安装应用程序期间执行的脚本。

其中一个用于设置数据库排序规则,另一个用于设置兼容性级别。我们对这些脚本使用以下构造:

问题是

设置单用户模式后,某些后台进程是否有可能获得访问权限?在这种情况下,我们的脚本无法执行。我看到了这个问题,看起来很相似,所以我决定问一个问题。

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/950c9b85-67f9-4272-8dff-14aa3590bc8a/single-user-mode-session-lost-after-backgound-processes-jump-in?论坛=sql数据库引擎

此问题与还原数据库有关。

但是我不完全理解在单用户模式下恢复和更改数据库之间的区别。

在第一种情况下,将数据库设置为脱机就足够了。

任何帮助将不胜感激。

提前致谢。

0 投票
1 回答
36 浏览

sql-server - 即使没有人连接也有单用户限制

使用 SQL Server Management Studio 时,我尝试查询使用“单用户”限制创建的数据库。

我使用 SQL 凭据和“sa”用户登录并运行 sp_who2 命令,我仔细检查了没有人连接到数据库,但是在对数据库表执行查询时,系统回复:

数据库“MyDB”已经打开,一次只能有一个用户。

我想了解为什么我会遇到这个问题。有人可以帮忙吗?