积极答复者
如何限制普通用户的连接数,而不限制管理员用户的连接数

问题
答案
-
EXEC sys.[sp_configure] @configname = 'user connections', -- varchar(35)
@configvalue = 1000 -- int
RECONFIGURE WITH override正如rmiao大侠所说sqlserver不能这样控制的
- 已标记为答案 Michelle GeModerator 2014年5月26日 9:15
全部回复
-
-
1. DAC 连接可以在普通用户连接无法连接的情况下, 仍然可以连接SQL, 这个通常不需要过于担心
2. 通过资源调控器可以确保保留给服务器少量资源, 再结合DAC, 无法响应的风险应该是非常非常小了
3. 研究了一下资源调控器, 可以控制并发请求数
我用下面的方法控制所有用户只能一个并发 (对于楼主的要求, 可以创建两外负荷组, 通过分类函数(rgclassifier_v1)把管理员和普通用户分到不同的组, 管理员组不限制, 用户组限制并发)
通过下面的负荷限制, 可以有我个连年, 但只能一个查询在执行, 其他操作会等等, 比如我建立两个连接, 一个执行 waitfor delay '00:00:30', 另一个执行 select 1, 在第一个查询完成前, 第二个查询是等等的
CREATE WORKLOAD GROUP test WITH( GROUP_MAX_REQUESTS = 1 ) GO CREATE FUNCTION dbo.rgclassifier_v1() RETURNS sysname WITH SCHEMABINDING AS BEGIN DECLARE @grp_name sysname SET @grp_name = 'test' RETURN @grp_name END; GO ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION= dbo.rgclassifier_v1); GO ALTER RESOURCE GOVERNOR RECONFIGURE;
-
EXEC sys.[sp_configure] @configname = 'user connections', -- varchar(35)
@configvalue = 1000 -- int
RECONFIGURE WITH override正如rmiao大侠所说sqlserver不能这样控制的
- 已标记为答案 Michelle GeModerator 2014年5月26日 9:15