Nos meus logs de erros do banco de dados (produzidos como nesta resposta ), vejo muitas instâncias (centenas por dia) da seguinte consulta:
declare @HkeyLocal nvarchar(18) declare @ServicesRegPath nvarchar(34) declare @SqlServiceRegPath sysname declare @BrowserServiceRegPath sysname declare @MSSqlServerRegPath nvarchar(31) declare @InstanceNamesRegPath nvarchar(59) declare @InstanceRegPath sysname declare @SetupRegPath sysname declare @NpRegPath sysname declare @TcpRegPath sysname declare @RegPathParams sysname declare @FilestreamRegPath sysname selecione @HkeyLocal=N'HKEY_LOCAL_MACHINE' -- Caminhos baseados em instância selecione @MSSqlServerRegPath=N'SOFTWARE\Microsoft\MSSQLServer' selecione @InstanceRegPath=@MSSqlServerRegPath + N'\MSSQLServer' selecione @FilestreamRegPath=@InstanceRegPath + N'\Filestream' selecione @SetupRegPath=@MSSqlServerRegPath + N'\Setup' selecione @RegPathParams=@InstanceRegPath+'\Parameters' -- Serviços selecione @ServicesRegPath=N'SYSTEM\CurrentControlSet\Services' selecione @SqlServiceRegPath=@ServicesRegPath + N'\MSSQLSERVER' selecione @BrowserServiceRegPath=@ServicesRegPath + N'\SQLBrowser' -- Configuração de InstanceId selecione @InstanceNamesRegPath=N'SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL' -- Configurações de rede selecione @NpRegPath=@InstanceRegPath + N'\SuperSocketNetLib\Np' selecione @TcpRegPath=@InstanceRegPath + N'\SuperSocketNetLib\Tcp' declare @SmoAuditLevel int exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'AuditLevel', @SmoAuditLevel OUTPUT declare @NumErrorLogs int exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'NumErrorLogs', @NumErrorLogs OUTPUT declare @SmoLoginMode int exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'LoginMode', @SmoLoginMode OUTPUT declare @SmoMailProfile nvarchar(512) exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'MailAccountName', @SmoMailProfile OUTPUT declare @BackupDirectory nvarchar(512) if 1=isnull(cast(SERVERPROPERTY('IsLocalDB') como bit), 0) selecione @BackupDirectory=cast(SERVERPROPERTY('instancedefaultdatapath') como nvarchar(512)) senão exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'BackupDirectory', @BackupDirectory OUTPUT declare @SmoPerfMonMode int exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'Performance', @SmoPerfMonMode OUTPUT se @SmoPerfMonMode for nulo começar definir @SmoPerfMonMode = 1000 fim declare @InstallSqlDataDir nvarchar(512) exec master.dbo.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLDataRoot', @InstallSqlDataDir OUTPUT declare @MasterPath nvarchar(512) declare @LogPath nvarchar(512) declare @ErrorLog nvarchar(512) declare @ErrorLogPath nvarchar(512) selecione @MasterPath=substring(nome_físico, 1, len(nome_físico) - charindex('\', reverse(nome_físico))) de master.sys.database_files onde nome=N'master' selecione @LogPath=substring(nome_físico, 1, len(nome_físico) - charindex('\', reverse(nome_físico))) de master.sys.database_files onde nome=N'mastlog' selecione @ErrorLog=cast(SERVERPROPERTY(N'errorlogfilename') as nvarchar(512)) selecione @ErrorLogPath=substring(@ErrorLog, 1, len(@ErrorLog) - charindex('\', reverse(@ErrorLog))) declare @SmoRoot nvarchar(512) exec master.dbo.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLPath', @SmoRoot OUTPUT declare @ServiceStartMode int EXEC master.sys.xp_instance_regread @HkeyLocal, @SqlServiceRegPath, N'Start', @ServiceStartMode OUTPUT declare @ServiceAccount nvarchar(512) EXEC master.sys.xp_instance_regread @HkeyLocal, @SqlServiceRegPath, N'ObjectName', @ServiceAccount OUTPUT declare @NamedPipesEnabled int exec master.dbo.xp_instance_regread @HkeyLocal, @NpRegPath, N'Enabled', @NamedPipesEnabled SAÍDA declare @TcpEnabled int EXEC master.sys.xp_instance_regread @HkeyLocal, @TcpRegPath, N'Enabled', @TcpEnabled OUTPUT declare @InstallSharedDirectory nvarchar(512) EXEC master.sys.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLPath', @InstallSharedDirectory OUTPUT declare @SqlGroup nvarchar(512) exec master.dbo.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLGroup', @SqlGroup OUTPUT declare @FilestreamLevel int exec master.dbo.xp_instance_regread @HkeyLocal, @FilestreamRegPath, N'EnableLevel', @FilestreamLevel OUTPUT declare @FilestreamShareName nvarchar(512) exec master.dbo.xp_instance_regread @HkeyLocal, @FilestreamRegPath, N'ShareName', @FilestreamShareName OUTPUT declare @cluster_name nvarchar(128) declare @quorum_type tinyint declare @quorum_state tinyint COMEÇAR A TENTAR SELECT @cluster_name = cluster_name, @quorum_type = quorum_type, @quorum_state = quorum_state DE sys.dm_hadr_cluster TERMINAR TENTATIVA COMEÇAR A PEGAR --Consultar este DMV usando uma conexão de autenticação contida gera o erro 15562 (o módulo não é confiável) --por causa da falta de confiabilidade do servidor. Isso é esperado, então deixamos apenas o --valores como padrão SE(ERROR_NUMBER() NÃO ESTÁ EM (297.300, 15562)) COMEÇAR LANÇAR FIM TERMINAR ATENDIMENTO SELECT @SmoAuditLevel AS [AuditLevel], ISNULL(@NumErrorLogs, -1) AS [NumberOfLogFiles], (caso quando @SmoLoginMode 'A' então 1 else 0 final AS bit) AS [IsCaseSensitive], @@MAX_PRECISION AS [MaxPrecision], CAST(FULLTEXTSERVICEPROPERTY('IsFullTextInstalled') AS bit) AS [IsFullTextInstalled], SERVERPROPERTY(N'ProductVersion') AS [VersionString], CAST(SERVERPROPERTY(N'Edition') AS sysname) AS [Edition], CAST(SERVERPROPERTY(N) 'ProductLevel') AS sysname) AS [ProductLevel], CAST(SERVERPROPERTY('IsSingleUser') AS bit) AS [IsSingleUser], CAST(SERVERPROPERTY('EngineEdition') AS int) AS [EngineEdition], convert(sysname, serverproperty( N'collation')) AS [Collation], CAST(SERVERPROPERTY('IsClustered') AS bit) AS [IsClustered], CAST(SERVERPROPERTY(N'MachineName') AS sysname) AS [NetName], @LogPath AS [MasterDBLogPath], @MasterPath AS [MasterDBPath], SERVERPROPERTY('instancedefaultdatapath') AS [DefaultFile], SERVERPROPERTY('instancedefaultlogpath') AS [DefaultLog], SERVERPROPERTY(N'ResourceVersion ') AS [ResourceVersionString], SERVERPROPERTY(N'ResourceLastUpdateDateTime') AS [ResourceLastUpdateDateTime], SERVERPROPERTY(N'CollationID') AS [CollationID], SERVERPROPERTY(N'ComparisonStyle') AS [ComparisonStyle], SERVERPROPERTY(N'SqlCharSet') AS [SqlCharSet], SERVERPROPERTY(N'SqlCharSetName') AS [SqlCharSetName], SERVERPROPERTY(N'SqlSortOrder') AS [SqlSortOrder], SERVERPROPERTY(N'SqlSortOrderName') AS [SqlSortOrderName], SERVERPROPERTY(N'ComputerNamePhysicalNetBIOS') AS [ ComputerNamePhysicalNetBIOS], SERVERPROPERTY(N'BuildClrVersion') AS [BuildClrVersionString], @ServiceStartMode AS [ServiceStartMode], ISNULL(@ServiceAccount,N'') AS [ServiceAccount], CAST(@NamedPipesEnabled AS bit) AS [NamedPipesEnabled], CAST(@TcpEnabled AS bit) AS [ TcpEnabled], ISNULL(@InstallSharedDirectory,N'') AS [InstallSharedDirectory], ISNULL(suser_sname(sid_binary(ISNULL(@SqlGroup,N''))),N'') AS [SqlDomainGroup], caso quando 1=msdb. dbo.fn_syspolicy_is_automation_enabled() e existe (selecione * de msdb.dbo.syspolicy_system_health_state onde target_query_expression_with_id como 'Server%' ) então 1 else 0 end AS [PolicyHealthState], @FilestreamLevel AS [FilestreamLevel], ISNULL(@FilestreamShareName,N'') AS [FilestreamShareName], -1 AS [TapeLoadWaitTime], CAST(SERVERPROPERTY(N'IsHadrEnabled') AS bit) AS [IsHadrEnabled],SERVERPROPERTY(N'HADRManagerStatus') AS [HadrManagerStatus], ISNULL(@cluster_name, '') AS [ClusterName], ISNULL(@quorum_type, 4) AS [ClusterQuorumType], ISNULL(@quorum_state, 3) AS [ClusterQuorumState], SUSER_SID (@ServiceAccount, 0) AS [ServiceAccountSid], CAST(SERVERPROPERTY('IsPolyBaseInstalled') AS bit) AS [IsPolyBaseInstalled], N'Windows' AS [HostPlatform], CAST( serverproperty(N'Nome do Servidor') AS sysname) AS [Nome], CAST( ISNULL(propriedade do servidor(N'nome da instância'),N'') AS sysname) AS [InstanceName], CAST(0x0001 AS int) AS [Status], N'\' AS [PathSeparator], 0 AS [IsContainedAuthentication], CAST(null AS int) AS [ServerType] drop table #SVer
Esses comandos vêm do meu computador (DBA) e de um desenvolvedor. Para o desenvolvedor, dá vários erros de permissões:
A permissão VIEW SERVER STATE foi negada no objeto 'servidor', banco de dados 'mestre'. O servidor principal "MYDOMAIN\john.doe" não pode acessar o banco de dados "model" no contexto de segurança atual. Falha no login do usuário 'MYDOMAIN\john.doe'. Motivo: Falha ao abrir o banco de dados explicitamente especificado 'MODEL'. [CLIENTE: 10.90.90.10] Falha no login do usuário 'MYDOMAIN\john.doe'.
Para mim, dá este erro:
Não é possível descartar a tabela '#SVer' porque ela não existe ou você não tem permissão.
Não tenho ideia de qual aplicativo está causando essas consultas e, portanto, esses erros irritantes. Olhando para a consulta, você tem alguma idéia? O que eu poderia fazer para investigar?
Essa é a consulta que o SSMS executa quando você clica em
instance name
->properties
. Para confirmar, inicie um rápido SQL Profiler Trace usando o modelo TSQL, filtre para seu login, clique com o botão direito do mouse no nome do servidor e selecioneproperties
, e você deverá ver a mesma consulta passar no rastreamento. As especificidades diferem entre as versões do SSMS, mas todas elas se apegam à mesma consulta básica.O
#Sver
erro é interessante, mas não uma coisa crítica para se preocupar. Você tem ferramentas de terceiros instaladas que se integram ao SSMS? Talvez estes também sejam parte da causa.Essa mensagem "Não é possível descartar a tabela '#SVer'" está chegando quando você usa a biblioteca SMO para fazer o script do esquema do seu banco de dados.
também você pode capturar a mesma mensagem de erro por evento estendido (errorlog_reported)
então, minha sugestão é que seu aplicativo possa usar smo para script algo, como tabela ou qualquer esquema.
esta é uma mensagem com erros que o sql server gera toda vez que os usuários usam a biblioteca smo. Eu criei pessoalmente uma postagem de feedback do Azure para emitir esse bug. mas sabe-se que o bug foi corrigido e nenhuma mensagem será mostrada no servidor sql mais recente. Mas eu não consegui encontrar nenhuma nota oficial de lançamento para isso.