AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-22336

Marcello Miorelli's questions

Martin Hope
Marcello Miorelli
Asked: 2025-04-01 20:13:34 +0800 CST

从源服务器导入数据到目标服务器后,我的 ssis 包保存在哪里?

  • 5

因此,我正在从主数据库上的表中的其他服务器导入一些数据

这是通过对目标服务器的查询完成的,但我需要在两台服务器上指定凭据。

在此处输入图片描述

因为我必须多次执行此操作,所以我想保存该包,以便以最小的努力就可以更改查询和目标表并再次运行它。

因此,我在源服务器上设置了查询,并在目标服务器上设置了表

在此处输入图片描述

我将其设置为将我的包保存到 SQL Server,如下图所示,但是

我可以在哪里看到它?我可以重复使用它吗?

在此处输入图片描述

我正在从目标服务器运行它,所以它应该在那里,但是在哪里?

sql-server
  • 1 个回答
  • 16 Views
Martin Hope
Marcello Miorelli
Asked: 2025-03-26 19:48:13 +0800 CST

查询以查找可用性组中涉及的服务器的最新事务备份

  • 5

我收到一个查询,要求查找最新的事务日志备份。但由于某种原因,它在此特定服务器中不起作用。

查询如下:

SELECT
    @@Servername AS [Server_Name],
    B.name AS Database_Name,
    ISNULL(STR(ABS(DATEDIFF(day, SYSDATETIME(), MAX(A.backup_finish_date)))), 'NEVER') AS DaysSinceLastBackup,
    ISNULL(CONVERT(CHAR(11), MAX(A.backup_finish_date), 113) + ' ' + CONVERT(VARCHAR(8), MAX(A.backup_finish_date), 108), 'NEVER') AS LastBackupDate,
    BackupSize_GB = REPLACE(CONVERT(VARCHAR(50), CAST(CAST(COALESCE(MAX(A.compressed_backup_size), MAX(A.backup_size), 0)/1024.0/1024.0/1024.0 AS NUMERIC(18,2)) AS MONEY),1), '.00',''),
    BackupSize_MB = REPLACE(CONVERT(VARCHAR(50), CAST(CAST(COALESCE(MAX(A.compressed_backup_size), MAX(A.backup_size), 0)/1024.0/1024.0 AS NUMERIC(18,2)) AS MONEY),1), '.00',''),
    [Last Backup Duration (sec)] = DATEDIFF(s, MAX(A.backup_start_date), MAX(A.backup_finish_date)),
    [AVG Backup Duration (sec)] = AVG(CAST(DATEDIFF(s, A.backup_start_date, A.backup_finish_date) AS INT)),
    [Longest Backup Duration (sec)] = MAX(CAST(DATEDIFF(s, A.backup_start_date, A.backup_finish_date) AS INT)),
    [Shortest Backup Duration (sec)] = MIN(CAST(DATEDIFF(s, A.backup_start_date, A.backup_finish_date) AS INT)),
    A.type,
    media_set_id = MAX(A.media_set_id),
    B.create_date,
    B.recovery_model_desc,
    B.state_desc,
    B.is_read_only,
    B.database_id,
    Backup_Started = MAX(A.backup_start_date),
    Backup_Finished = MAX(A.backup_finish_date)
FROM sys.databases B WITH(NOLOCK)
LEFT OUTER JOIN msdb.dbo.backupset A WITH(NOLOCK)
    ON A.database_name = B.name
    AND A.type = 'L' -- Solo Transaction Log
WHERE 1=1
--B.Name = 'My_database'
GROUP BY
    B.Name,
    B.database_id,
    B.create_date,
    B.recovery_model_desc,
    B.state_desc,
    B.is_read_only,
    A.type

sql-server
  • 1 个回答
  • 43 Views
Martin Hope
Marcello Miorelli
Asked: 2025-03-13 14:09:42 +0800 CST

部署无法解密的加密存储过程

  • 8

有很多种方法可以查看加密过程。

SSMS 中加密过程的示例:

在此处输入图片描述

有一个很好的问题:如何查看加密视图或存储过程,您可以看到查看加密过程代码的多种方法,例如使用第三方工具、 专用管理连接、反转RC4 流密码等等,但还有其他很好的答案。

这是使用 DAC 和链接服务器查看加密存储过程代码的另一种引人注目的方式。

那么,我如何在客户的数据库中部署加密的存储过程,以便他们无法解密并查看代码?

过去,他们在自己的存储过程中使用了我们的代码,在许多方面和领域破坏了数据的完整性。我们不希望这种情况再次发生;如果他们需要任何更改或改进,他们可以寻求支持,我们可以安排。

他们托管数据库并拥有完全的访问/控制权,并负责备份、维护等。我无法提供更多细节,也许他们的 DBA 正在阅读这篇文章;)

我在想也许我可以将解密添加或附加到密码中......?

我也会考虑第三方工具。如果您对任何此类工具有积极的体验,请告知,但我更喜欢通过 SQL Server 进行操作。

问题:有没有办法部署无法解密的加密存储过程?

sql-server
  • 2 个回答
  • 424 Views
Martin Hope
Marcello Miorelli
Asked: 2025-03-12 05:14:22 +0800 CST

如何在同一台服务器上设置具有可用性组作为发布者以及订阅者和分发者的复制?

  • 5

我有一个与这张图片类似的情况:

在此处输入图片描述

可用性组中的 2 台服务器 sql1 和 sql2,以及基本上是报告服务器的第三台服务器。

我需要创建一个事务复制,发布者位于可用性组中,订阅者位于客户端服务器中。

我计划做的是:

  1. 客户也是分销商
  2. 该发布位于侦听器中,因此分发服务器不知道处于活动状态的是 sql1 还是 sql2
  3. 在发生故障转移或故障回复的情况下,复制作业仅在主节点中处于活动状态。

理想情况下,我希望另一台服务器或可用性组作为分发者,但这是不可能的。

这有可能起作用吗,或者在这个拓扑结构中是否存在我无法跨越的桥梁?

启用 TF 1448 后?

sql-server
  • 1 个回答
  • 42 Views
Martin Hope
Marcello Miorelli
Asked: 2025-02-01 01:22:50 +0800 CST

有什么方法可以查看特定补丁是否已应用到我的 SQL 服务器?

  • 6

我如何知道此补丁是否已应用到我的 SQL Server 服务器?

我知道@@version,但是它显示了应用的最新补丁,那么在此之前的其他补丁呢?

在此处输入图片描述

sql-server
  • 1 个回答
  • 49 Views
Martin Hope
Marcello Miorelli
Asked: 2025-02-01 01:16:53 +0800 CST

db_id() - 数据库 ID 可以改变吗?

  • 10

我公司的一位开发人员设置了一个SQL 事件探查器,其中有一个基于数据库 ID 的过滤器。

他告诉我他正在寻找的数据库 ID已经改变。

有问题的数据库仍然存在,但现在不是 61 而是 60。

在此处输入图片描述

sql-server
  • 1 个回答
  • 208 Views
Martin Hope
Marcello Miorelli
Asked: 2025-01-29 23:21:24 +0800 CST

powershell 中的 sql 服务器代码上的双引号-在可视化代码中-如何使其工作?

  • 8

双引号在 SQL Server 中使用,其行为可以通过选项SET QUOTED_IDENTIFIER ON \ OFF来定义

在powershell中也使用双引号。

调用 XML 数据类型方法时,SET QUOTED_IDENTIFIER 必须为 ON。

这是我想要部署到多个服务器的存储过程的部分视图,但是,由于引号标识符或双引号这个字符 - “ - 它在 powershell 中不起作用,在我用来部署的可视化代码中。

DECLARE @WebXConfigurationID INT,
                @stored_URL VARCHAR(2000), @cur_URL VARCHAR(2000), 
                @stored_OpsServiceURL VARCHAR(2000), @cur_OPSServiceURL  VARCHAR(2000),
                @cur_Properties XML;


            PRINT 'WebX Configuration: ' + CAST(@WebXConfigurationID AS VARCHAR(20));

            IF (ISNULL(@stored_URL, '') <> ISNULL(@cur_URL, ''))
            BEGIN
                PRINT ' - Base URL needs updating'
            END 
            ELSE
            BEGIN
                PRINT ' - Base URL does not need updating'
            END;

            IF (ISNULL(@stored_OpsServiceURL, '') <> ISNULL(@cur_OPSServiceURL, '') AND @cur_OPSServiceURL IS NOT NULL)
            BEGIN
                PRINT ' - OPS Service URL needs updating'
                SET @cur_Properties.modify('replace value of (/properties[1]//OPSServiceURL[1]/text())[1] with sql:variable("@stored_OpsServiceURL")')
            END 
            ELSE
            BEGIN
                PRINT ' - OPS Service URL does not need updating'
            END;

这是错误信息:

"' in expression or statement.
At C:\sp_PosRestore.ps1:636 char:114
+ ... ServiceURL[1]/text())[1] with sql:variable("@stored_OpsServiceURL")')
+                                                 ~~~~~~~~~~~~~~~~~~~~~
The splatting operator '@' cannot be used to reference variables in an expression. '@stored_OpsServiceURL' can be used only as an argument to a command. To reference variables in an expression use      
'$stored_OpsServiceURL'.
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : UnexpectedToken

在此处输入图片描述

Powershell 代码:

$SQLQuery = 
"
DECLARE @WebXConfigurationID INT,
                @stored_URL VARCHAR(2000), @cur_URL VARCHAR(2000), 
                @stored_OpsServiceURL VARCHAR(2000), @cur_OPSServiceURL  VARCHAR(2000),
                @cur_Properties XML;


            PRINT 'WebX Configuration: ' + CAST(@WebXConfigurationID AS VARCHAR(20));

            IF (ISNULL(@stored_URL, '') <> ISNULL(@cur_URL, ''))
            BEGIN
                PRINT ' - Base URL needs updating'
            END 
            ELSE
            BEGIN
                PRINT ' - Base URL does not need updating'
            END;

            IF (ISNULL(@stored_OpsServiceURL, '') <> ISNULL(@cur_OPSServiceURL, '') AND @cur_OPSServiceURL IS NOT NULL)
            BEGIN
                PRINT ' - OPS Service URL needs updating'
                SET @cur_Properties.modify('replace value of (/properties[1]//OPSServiceURL[1]/text())[1] with sql:variable("@stored_OpsServiceURL")')
            END 
            ELSE
            BEGIN
                PRINT ' - OPS Service URL does not need updating'
            END;
"


sql-server
  • 2 个回答
  • 332 Views
Martin Hope
Marcello Miorelli
Asked: 2025-01-22 18:28:58 +0800 CST

如何避免在更改实例配置时写入错误日志?

  • 5

如果您想知道如何临时更改 SQL Server 设置以执行任务并在完成后恢复,有一种方法可以在启用 SQL Server 设置之前保存它们,因此您可以在需要时禁用它们。

以下是代码(部分复制):

IF OBJECT_ID('tempdb.dbo.#Settings') IS NOT NULL
    DROP TABLE #Settings;

CREATE TABLE #Settings
(
    Setting VARCHAR(100),
    Val INT
)
INSERT #Settings (Setting, Val)
SELECT 'show advanced options', cast(value_in_use as int) from sys.configurations where name = 'show advanced options'
UNION
SELECT 'xp_cmdshell', cast(value_in_use as int) from sys.configurations where name = 'xp_cmdshell'
UNION
SELECT 'Ad Hoc Distributed Queries', cast(value_in_use as int) from sys.configurations where name = 'Ad Hoc Distributed Queries'

SELECT * FROM #Settings;

如果您一次运行一个过程,那么效果会很好;但是,它会写入 SQL Server 错误日志,如下所示:

在此处输入图片描述

有没有办法避免将设置更改写入错误日志?

sql-server
  • 2 个回答
  • 83 Views
Martin Hope
Marcello Miorelli
Asked: 2025-01-20 18:51:25 +0800 CST

如何自动删除数据库?

  • 5

正在编写一个删除数据库的脚本。

在某些环境中,我们的数据库会定期从实时状态恢复, 建立复制(合并或事务),运行和测试流程,然后需要删除数据库,因为所有开发都已部署到实时状态,现在开始另一个循环。

作为自动删除数据库的一部分,到目前为止,我给出了以下脚本:

select
DROP_DB_SCRIPT='use master;' + char(13) 
+ case when source_database_id is not null  -- this is a database snapshot
     then '' 
      else 
        ' alter database ' + name + ' set single_user with rollback immediate ' +              -- put db in single user mode 
        case when (sb.is_published = 1 or sb.is_merge_published = 1) 
             then 'EXEC sp_removedbreplication ' + '''' + name + ''''                           -- remove db from the replication 
             else '' 
        end +char(13) 
  end  +char(13) +
' drop database ' + quotename(name) +char(13) 

,*
from sys.databases sb
where database_id >= 5
and is_distributor= 0

上面的脚本除了生成一个可以用来删除所需数据库或一组数据库的脚本之外不会执行任何其他操作。

它考虑了复制(您需要单独删除复制),并且数据库是否是数据库快照,这是不同的事情。

我没有考虑过以下几点:

在删除 OFFLINE 数据库之前是否应将其设置为 EMERGENCY?

这里的问题是:您是否发现我应该添加但却没有添加任何内容?

我已经处理了两件事:

  1. 数据库是一个快照
  2. 数据库参与复制

我还没有处理过:

  1. 数据库是可用性组的一部分(在这种情况下,我需要先将其从 AG 中删除)
  2. 你还看到了什么吗?
sql-server
  • 1 个回答
  • 63 Views
Martin Hope
Marcello Miorelli
Asked: 2024-12-30 22:16:27 +0800 CST

部分备份有什么缺点?

  • 6

我最近在网上发现了Alexandr Omelchenko撰写的这篇关于部分备份的精彩文章

在此处输入图片描述

-- this is how he would do a backup:

BACKUP DATABASE your_database TO DISK = 'full.bak'
BACKUP DATABASE your_database READ_WRITE_FILEGROUPS TO DISK = 'partial_backup_full.bak'
BACKUP DATABASE your_database READ_WRITE_FILEGROUPS TO DISK = 'partial_backup_diff.bak' WITH DIFFERENTIAL

-- this is how he would do a restore:

RESTORE DATABASE your_database FROM DISK = 'full.bak' WITH NORECOVERY 
GO 
RESTORE DATABASE your_dataabse FROM DISK = 'partial_backup_full.bak' WITH NORECOVERY  
GO 
RESTORE DATABASE your_database FROM DISK = 'partial_backup_diff.bak' WITH RECOVERY  
GO

碰巧我有几个数据库有 4 个文件组。其中一个文件组加载了保存在该文件组中的一个表中的文档。

我认为单独备份文件组会对我有益。

这样做可能有什么缺点?除了改变restore verifyonly (包括dbaTools ) 的开销以适应此更改并确保使用校验和进行备份之外?

我需要检查的是压缩。另一件事是备份的校验和选项- 正如 Ola 本人在这里和 Paul Randal在这里所建议的那样。

我们绝对需要检查我们的备份是否可靠。

sql-server
  • 1 个回答
  • 68 Views
Martin Hope
Marcello Miorelli
Asked: 2024-11-26 22:47:39 +0800 CST

SQL Server 中没有对应会话的事务

  • 6

我正在看我的朋友马丁在下面的查询中的一些“工作表”

SELECT st.session_id
        ,at.*,
 case transaction_type   
      when 1 then 'Read/Write'   
      when 2 then 'Read-Only'    
      when 3 then 'System'   
      when 4 then 'Distributed'  
      else 'Unknown - ' + convert(varchar(20), transaction_type)     
 end as tranType,    
 case transaction_state 
      when 0 then 'Uninitialized' 
      when 1 then 'Not Yet Started' 
      when 2 then 'Active' 
      when 3 then 'Ended (Read-Only)' 
      when 4 then 'Committing' 
      when 5 then 'Prepared' 
      when 6 then 'Committed' 
      when 7 then 'Rolling Back' 
      when 8 then 'Rolled Back' 
      else 'Unknown - ' + convert(varchar(20), transaction_state) 
 end as tranState, 
 case dtc_state 
      when 0 then NULL 
      when 1 then 'Active' 
      when 2 then 'Prepared' 
      when 3 then 'Committed' 
      when 4 then 'Aborted' 
      when 5 then 'Recovered' 
      else 'Unknown - ' + convert(varchar(20), dtc_state) 
 end as dtcState
FROM    sys.dm_tran_active_transactions at
  left JOIN sys.dm_tran_session_transactions st ON st.transaction_id = at.transaction_id
ORDER BY at.transaction_begin_time


在此处输入图片描述

引起我注意的一件事是这些交易没有相应的会话?

我怎样才能知道他们来自哪里?

没有与它们关联的会话。

sql-server
  • 1 个回答
  • 73 Views
Martin Hope
Marcello Miorelli
Asked: 2024-11-06 03:33:04 +0800 CST

如何列出所有复制的视图和功能?

  • 5

我有一个脚本可以向我展示出版物的复制文章:

declare @publication_name sysname = 'my_pub'
declare @database_name sysname = 'my_db'
 use [my_db]


select  ServerName = @@servername
       ,publication_name=p.name
       ,p.repl_freq
       ,p.status
       ,p.sync_method
       --,snapshot_job_name=j.name
       ,p.independent_agent
       ,p.immediate_sync
       ,p.allow_anonymous
       ,p.replicate_ddl
       ,article_name=OBJECT_SCHEMA_NAME(a.objid) + '.' + OBJECT_NAME(a.objid)
       ,a.pre_creation_cmd 
       ,pre_creation_cmd_desc  = CASE a.pre_creation_cmd 
         WHEN 0 THEN 'none      - Doesn''t use a command.'
         WHEN 1 THEN 'drop      - Drops the destination table.'
         WHEN 2 THEN 'delete    - Deletes the destination table.'
         WHEN 3 THEN 'truncate  - Truncates the destination table.'
         ELSE 'Not known - Radhe Radhe'
        END


            FROM dbo.syspublications P 
            INNER JOIN dbo.sysarticles A 
                    ON P.pubid = A.pubid

           left outer  JOIN msdb.dbo.sysjobs j
                    ON j.job_id = p.snapshot_jobid

 where p.name = @publication_name

但是,在我目前正在研究的这个特定出版物中,我也有功能,而这些对象没有显示在上面的查询中?

我知道它们在那里,我怎样才能看到它们?

sql-server
  • 1 个回答
  • 23 Views
Martin Hope
Marcello Miorelli
Asked: 2024-11-05 21:24:52 +0800 CST

如何获取备份的位置?您可以使用多列旋转或任何其他方式!

  • 5

我得到了这个很棒的查询,它显示了每个现有数据库的最新备份。

SELECT
    M.name,
    [Recovery Model] = 
        M.recovery_model_desc,
    [State] = 
        M.state_desc,
    [Last Full Backup] = 
        FORMAT(ISNULL(M.D, '19000101'), 'dd-MM-yyyy hh:mm'),
    [Last Differential Backup] = 
        FORMAT(ISNULL(M.I, '19000101'), 'dd-MM-yyyy hh:mm'),
    [Last log Backup] = 
        FORMAT(ISNULL(M.L, '19000101'), 'dd-MM-yyyy hh:mm')
FROM
(
    SELECT
        db.name,
        db.state_desc,
        db.recovery_model_desc,
        a.type,
        a.backup_finish_date
    FROM master.sys.databases AS db
    LEFT OUTER JOIN msdb.dbo.backupset AS a
      ON a.database_name = db.name
) AS Sourcetable
PIVOT
(
    MAX(backup_finish_date)
    FOR type IN
    (
        D,
        I,
        L
    )
) AS M --ostRecentBackup
WHERE name NOT IN
(
    N'master',
    N'msdb',
    N'model',
    N'tempdb'
);

我注意到它使用了枢轴 - 如果我还必须添加位置怎么办?那将是多列。

无论是通过使用多列进行旋转,还是逆旋转,我怎样才能将每种备份类型的位置添加到上述查询中?

基本上,最新的完整备份在哪里,最新的差异和最新的日志(如果有)在哪里。

这是我用来查看备份位置的脚本:

SELECT   
   CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server, 
   msdb.dbo.backupset.database_name,  
   msdb.dbo.backupset.TYPE,
   msdb.dbo.backupset.backup_start_date,  
   msdb.dbo.backupset.backup_finish_date, 
   msdb.dbo.backupset.expiration_date, 
   msdb.dbo.backupset.backup_size,  
   msdb.dbo.backupset.backup_size * 1.024 /1024/1024 as [Backup size in MB],
   msdb.dbo.backupmediafamily.logical_device_name,  
   msdb.dbo.backupmediafamily.physical_device_name,   
   msdb.dbo.backupset.name AS backupset_name, 
   msdb.dbo.backupset.description 
FROM   msdb.dbo.backupmediafamily  
   INNER JOIN msdb.dbo.backupset 
           ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id  
--WHERE msdb.dbo.backupset.database_name = 'PivCRM_Prod_Online_ED'
--AND TYPE = 'D'  -- L D and I
ORDER BY msdb.dbo.backupset.backup_start_date DESC

问题是:

我该如何将备份的位置(每种类型)添加到第一个查询?

sql-server
  • 1 个回答
  • 38 Views
Martin Hope
Marcello Miorelli
Asked: 2024-10-25 23:31:09 +0800 CST

sql server 合并复制 - 如何找出快照文件夹的位置该文件夹的权限是什么

  • 5

我正在寻找合并复制的快照文件夹的位置

我尝试过:

select top 5 * FROM sysmergepublications pub
select *       FROM dbo.sysmergeSubscriptions

在此处输入图片描述

但它没有显示文件夹名称以及需要的权限

我可以从哪里使用 t-sql 获取此信息?

sql-server
  • 1 个回答
  • 16 Views
Martin Hope
Marcello Miorelli
Asked: 2024-10-18 19:41:02 +0800 CST

sql 服务器备份 - physical_block_size 是什么?

  • 5

我们最近更改了文件服务器,即存储库(存储备份的地方)服务器。

我注意到硬件特别是 IO 更好,备份需要更短的时间才能完成,这取决于很多因素,但是,恢复仍然需要与以前相同的时间。

这不是一个复杂的问题,我这里只有一个问题:

什么是physical_block_size?

当您在数据库上运行以下查询时msdb:

SELECT * 
  FROM msdb.dbo.backupmediafamily BMF WITH(NOLOCK)
 order by 1 desc

这是上述查询的结果,请注意physical_block_size当我决定使用上面提到的新服务器作为备份目标时,它是如何从 4096 变为 512 的:

在此处输入图片描述

sql-server
  • 1 个回答
  • 57 Views
Martin Hope
Marcello Miorelli
Asked: 2024-08-17 04:47:06 +0800 CST

脚本来更改作业的计划,它需要找到与作业关联的计划

  • 5

使用Ola 的备份策略,有一项工作

数据库备份 - 系统数据库已满,如下图所示。

此项工作计划每周日早上运行一次。

一切都很好,已经运行了一段时间了。

现在我需要将其改为每天运行。

使用 ssms 、编写更改脚本并应用它,效果很好。

然而,因为我需要在几十台服务器上完成这项工作,所以我需要一个脚本来找出时间表,然后修改它并重新应用到工作中

我还没有实现它,但我想知道是否有人已经做到了。

在此处输入图片描述

sql-server
  • 2 个回答
  • 68 Views
Martin Hope
Marcello Miorelli
Asked: 2024-08-17 04:41:19 +0800 CST

所有连接均已加密,但数据库镜像连接未加密

  • 5

根据下面的图片你可以看到结果 select * from sys.dm_exec_connections

很好的 dmv 显示当前连接。

现在,如果您查看详细信息,就会发现数据库镜像连接未加密。

问题是:

这值得担忧吗?

在此处输入图片描述

sql-server
  • 1 个回答
  • 29 Views
Martin Hope
Marcello Miorelli
Asked: 2024-08-07 05:25:03 +0800 CST

操作系统错误1326(用户名或密码不正确)

  • 5

我一直在研究SQL 服务器内部的映射驱动器。

我绘制了类似这样的图:

EXEC XP_CMDSHELL 'net use y: "\\my_server\Initialed Folders\MM" @@__password__@@ /User:mycompany\m_miorelli /persistent:NO'

那已是三个多月前的事了。

现在我已经更改了密码。

然后当我进入同一个服务器时,我们将其称为 my_server,然后运行此

EXEC XP_CMDSHELL 'net use'

我得到这个结果:

在此处输入图片描述

你看那里还有 az:驱动器仍然挂在那里,我不知道具体是怎么回事,也许我映射了它......persisted

当我尝试涉及备份所在服务器的任何操作时,我收到此错误消息:

restore filelistonly from disk=N'\\backup_server\ Initialed Folders\MM\backup_of_a_database.bak'

在此处输入图片描述

Msg 3201, Level 16, State 2, Line 20
Cannot open backup device '\\backup_server\ Initialed Folders\MM\backup_of_a_database.bak'. Operating system error 1326(The user name or password is incorrect.).
Msg 3013, Level 16, State 1, Line 20
RESTORE FILELIST is terminating abnormally.

我曾尝试这样做:

exec xp_cmdshell 'net use  \\ip\xxx pass /user:xxx /persistent:no'

在此处输入图片描述

问题):

我怎样才能摆脱该映射驱动器?或者非常具体的目标:我怎样才能摆脱这个错误密码的事情?

其他任何服务器都不会发生这种情况。

更新

按照Craig在评论中的建议,感谢Craig,我删除了映射驱动器

EXEC XP_CMDSHELL 'NET USE Z: /d'

在此处输入图片描述

这让我很高兴也很感激,但是,这并没有解决问题。

在此处输入图片描述

sql-server
  • 1 个回答
  • 56 Views
Martin Hope
Marcello Miorelli
Asked: 2024-07-29 18:54:18 +0800 CST

服务器端触发器 - 如何防止创建链接服务器?

  • 6

此触发器在数据库创建时执行操作- 显示了当有人创建新数据库时触发的服务器端触发器的示例。

另一个问题 -创建时触发更改数据库排序规则- 也显示了当有人创建新数据库时触发的服务器端触发器的示例。

这里有一个服务器端触发器的示例,它可以防止用户放弃登录:

USE [master]
GO

--======================================================================
-- example of a server trigger - does not allow a login to be dropped
--======================================================================
create trigger [no_dropped_logins]   on all server   
for drop_login   
as     
insert into ##LOGIN_WATCH       
select r.*, s.login_name, s.host_name,        
EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)') AS 'CmdText'       
from sys.dm_exec_requests r          
inner join sys.dm_exec_sessions s          
on r.session_id = s.session_id          
where r.session_id = @@SPID

我的问题是:

如何使用服务器端触发器来防止在 SQL Server 中创建链接服务器?

sql-server
  • 1 个回答
  • 99 Views
Martin Hope
Marcello Miorelli
Asked: 2024-07-10 19:37:37 +0800 CST

如何在下面的自动增长查询中添加日期和时间?

  • 5

在尝试防止自动增长发生时,我在这里得到了这个很好的脚本。

然而,如果确实发生了,我需要知道如何找出它。我可以使用Max Vernon 编写的这个非常好的脚本来做到这一点。

                        print @@servername + ' - ' + SUBSTRING(@@version,1,COALESCE(CHARINDEX('Copyright',@@version,0)-1,108))
                        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
                        SET NOCOUNT OFF


/*
    Description:    display growth events for all databases on the instance
    by:             Max Vernon
    date:           2014-10-01
*/
DECLARE @Version NVARCHAR(255);
DECLARE @VersionINT INT;
SET @Version = CONVERT(NVARCHAR(255),SERVERPROPERTY('ProductVersion'));
SET @VersionINT = CONVERT(INT, SUBSTRING(@Version,1 ,CHARINDEX('.',@Version)-1));
DECLARE @cmd NVARCHAR(2000);
SET @cmd = '';
IF @VersionINT >= 9
BEGIN
    SET @cmd = 
'
DECLARE @trcfilename VARCHAR(1000);

SELECT @trcfilename = path 
FROM sys.traces WITH(NOLOCK)
WHERE is_default = 1;

IF COALESCE(@trcfilename,'''') <> ''''
BEGIN
SELECT [Radhe]=
    '''''''' + @@SERVERNAME + '''''','''''' +
     DB_NAME(mf.database_id) + '''''','''''' +
     mf.name + '''''','' +
     CONVERT(VARCHAR(255), a.NumberOfGrowths) + '','' +
     CONVERT(VARCHAR(255), CAST(a.DurationOfGrowthsInSeconds AS decimal(38, 20)))
    FROM
    (
        SELECT
            tt.DatabaseID AS database_id,
            tt.FileName AS LogicalFileName,
            COUNT(*) AS NumberOfGrowths,
            SUM(tt.Duration / (1000 * 1000.0)) AS DurationOfGrowthsInSeconds
            FROM sys.fn_trace_gettable(@trcfilename, default) tt
            WHERE (EventClass IN (92, 93))
            GROUP BY
                tt.DatabaseID,
                tt.FileName
    ) a
    INNER JOIN sys.master_files mf ON
        (mf.database_id = a.database_id) AND
        (mf.name = a.LogicalFileName);
END
ELSE
BEGIN
    SELECT @@SERVERNAME, ''NO TRACE FILE'';
END
';
EXEC sp_executesql @cmd;
END
ELSE
BEGIN
    SELECT [SERVER NAME]=@@SERVERNAME, [Product Version]=SERVERPROPERTY('ProductVersion');
END

缺少的是并且我想补充的是——自动增长是什么时候发生的?

我怎样才能找到它?

sql-server
  • 1 个回答
  • 52 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve