问题标签 [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.
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
似乎没有帮助。
任何建议表示赞赏,谢谢。
sql - 如何返回多用户模式
这是我的查询:
将数据库设置回的最佳方法是什么multi_user
?恐怕最直接的方法可能会导致
数据库“MyDatabase”已经打开,一次只能有一个用户。
例外。
通过最直接的方式,我的意思是这个:
sql-server - 通过管理工作室将数据库设置为 multi_user
我必须将我的数据库设置为 single_user 模式才能进行dbcc checkdb
修复,现在我无法将我的数据库恢复为 multi_user。我已经在针对主数据库的查询窗口中尝试了以下命令,但它没有按照另一个堆栈溢出帖子的建议工作:
我收到以下错误:
消息 5064,级别 16,状态 1,第 2 行此时无法更改数据库“mydb”的状态或选项。数据库处于单用户模式,并且当前有一个用户连接到它。
消息 5069,级别 16,状态 1,第 2 行 ALTER DATABASE 语句失败。
如果我右键单击数据库并尝试选择属性,那么它会出错,说它已经在使用中。
任何帮助将不胜感激。
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/)尽管我最初抱有希望。
ruby-on-rails - 如果多次登录,则强制注销
如何配置 Devise,以便如果用户从另一台设备(不是 Devise!)登录并且未能从该另一台设备注销,这样会询问用户是否应该强制注销 OTHER 登录?
我假设 Devise 可以检测到即将创建一个新会话。我的假设正确吗?
基本上,我只需要一个用户登录就可以随时使用我的应用程序。这可能吗?也就是说,如果我有两个有效用户 x1@xyz.com 和 x2@abc.com,这两个用户可以同时登录,但 x1@xyz.com 和 x2@abc.com 只能分别登录一次。
postgresql - 如何退出 postgres 的单用户模式?
我已进入 postgres 的单用户模式
我可以使用什么命令来关闭单用户模式并返回到正常的$
命令提示符?
该命令\q
可以从psql
repl 退出,但是相同的命令似乎不适用于 postgres 单用户模式,即
ssis - 循环通过 DB 列表设置 DB 到单用户模式
我正在尝试创建一个动态 SQL 语句以将数据库设置为单用户模式,以便稍后我可以对其进行还原。我在一个循环中放置了一个执行 SQL 任务,其中一个参数用于提供下一个数据库的名称以设置为单用户模式。但是,我不确定 Execute SQL 是否可以运行 DML 或仅运行 SQL,并且我不确定它是否可以在循环中动态完成。这是我在 SQL Execute 任务中的代码。
DECALRE @SQLString nvarchar(200)
SET @SQLString = 'ALTER DATABASE [' + ? + '] ' + '设置单个用户立即回滚'
执行(@SQLString)
问号是我设置为单用户模式的数据库名称的 OLEDB 占位符。
这是在 SQL2012 上
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 进行测试自动化。
sql-server - 设置单用户模式后死锁
我们有一些在安装应用程序期间执行的脚本。
其中一个用于设置数据库排序规则,另一个用于设置兼容性级别。我们对这些脚本使用以下构造:
问题是:
设置单用户模式后,某些后台进程是否有可能获得访问权限?在这种情况下,我们的脚本无法执行。我看到了这个问题,看起来很相似,所以我决定问一个问题。
此问题与还原数据库有关。
但是我不完全理解在单用户模式下恢复和更改数据库之间的区别。
在第一种情况下,将数据库设置为脱机就足够了。
任何帮助将不胜感激。
提前致谢。
sql-server - 即使没有人连接也有单用户限制
使用 SQL Server Management Studio 时,我尝试查询使用“单用户”限制创建的数据库。
我使用 SQL 凭据和“sa”用户登录并运行 sp_who2 命令,我仔细检查了没有人连接到数据库,但是在对数据库表执行查询时,系统回复:
数据库“MyDB”已经打开,一次只能有一个用户。
我想了解为什么我会遇到这个问题。有人可以帮忙吗?