AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-34197

Martin Surasky's questions

Martin Hope
Martin Surasky
Asked: 2020-01-08 07:46:09 +0800 CST

Um banco de dados ouvindo dois nomes de banco de dados

  • 2

Eu sei que este é um tipo de pedido estranho. Eu mesmo nunca tive que pensar em um cenário como esse até hoje. Vou direto ao ponto para facilitar a leitura da pergunta. Suspeito que a resposta certa envolverá mais "pensar fora da caixa" do que um recurso ou capacidade oculta que, de alguma forma, não estou ciente.

Aqui está a coisa: eu preciso de um painel do PowerBI para consultar meu SQL Server, mas o painel do PowerBI terá uma string de conexão que consulta um banco de dados (vamos chamar esse banco de dados "DatabaseOne_Report") enquanto o SQL Server hospedará um banco de dados com um nome diferente (digamos "DatabaseOne").

Portanto, quando o painel do PowerBI executa uma consulta a DatabaseOne_Report.dbo.MyTable, quero que o SQL Server forneça dados de DatabaseOne.dbo.Table (observe que o sufixo "_Report" desapareceu do nome do banco de dados). Isso é possível de alguma forma?

Posso antecipar que sua primeira pergunta seria por que estou usando uma string de conexão com o nome de banco de dados errado. A resposta é que esse painel se conecta a diferentes ambientes e esses ambientes hospedam esse banco de dados usando 1 de 2 nomes diferentes por motivos que estão além do escopo do que estou perguntando aqui. A conclusão é que estamos tentando evitar reescrever a cadeia de conexão do painel do PowerBI e esperamos poder usar uma única cadeia de conexão para lidar com os dois nomes de banco de dados possíveis.

Eu li muitas perguntas em diferentes fóruns para lidar com aliases de 2 bancos de dados hospedados em caixas diferentes, mas nunca vi ninguém perguntando 2 bancos de dados hospedados na mesma caixa, mas com potencialmente dois nomes diferentes.

Pensei em criar um "shell" vazio de um banco de dados com o outro nome com nada além de sinônimos, mas isso seria muita configuração... Esperava encontrar algo mais simples.

Obrigado!

sql-server connectivity
  • 2 respostas
  • 371 Views
Martin Hope
Martin Surasky
Asked: 2019-10-17 18:27:32 +0800 CST

Sobre os atalhos de teclado do Apex SQL Refactor e SSMS sendo quebrados

  • 2

Olá DBA Stack Exchange!

Hoje eu tentei o Apex SQL Refactor e logo de início, uma vez instalado e integrado à minha ferramenta de desenvolvimento T-SQL de escolha (SSMS 18.3.1), notei que alguns atalhos de teclado pararam de funcionar.

Um exemplo (talvez haja mais, mas este eu tenho certeza): Após instalar e usar o SQL Refactor pela primeira vez (Refactor precisa ser usado pelo menos uma vez para que isso aconteça) a funcionalidade "Bancos de dados disponíveis" no SSMS ( que pode ser invocado por CTRL+U) não funciona mais. O que é pior, este não é um atalho configurável (como a maioria dos atalhos de teclado que podem ser configurados em Ferramentas -> Opções -> Teclado), então, uma vez quebrado, a única solução até agora (para fazê-lo funcionar novamente) é desinstale o SQL Refactor.

Este atalho de consulta (“Bancos de dados disponíveis”) é extremamente útil que as pessoas o usam repetidamente em sessões SQL, portanto, quebrar o atalho é uma coisa importante para mim.

insira a descrição da imagem aqui

Estou executando as últimas compilações disponíveis do SSMS (18.3.1) e do Apex SQL Refactor (2018.08.0364)

Minha pergunta é: você também passou por isso? Em caso afirmativo, como você resolveu o problema dos atalhos de teclado irreparavelmente perdidos após o Apex SQL Refactor?

Se você precisar que eu forneça informações adicionais sobre meu sistema ou logs que possam ajudá-lo a reproduzir esse problema, é só me avisar.

Obrigado a todos vocês!

sql-server query-refactor
  • 1 respostas
  • 315 Views
Martin Hope
Martin Surasky
Asked: 2018-05-23 06:00:30 +0800 CST

Pergunta de consulta SQL (itens que não possuem algum valor em uma coluna)

  • 6

Aqui está um enigma que preciso resolver com algum T-SQL Magic, tentei e falhei.

É uma dessas coisas que, antes de pensar na solução real, acho que posso resolver em 3 minutos com um pouco de T-SQL, mas quando a "borracha encontra a estrada" não consigo imaginar os operadores certos para alcançar essa lógica.

Gostaria de saber se alguém na comunidade do Stack Exchange pode encontrar uma solução elegante para este. Acho que com uma combinação de 3 ou 4 consultas usando tabelas temporárias ou cursores eu poderia encontrar a solução, mas não seria baseada em SET ...

Eu tenho uma tabela que se parece com isso (mais ou menos...)

CREATE TABLE Computers (
   ID               int IDENTITY(1,1),
   ComputerName     varchar(255),
   OS               varchar(255),
   AppName          varchar(255),
   AppVersion       varchar(10)
)

Portanto, cada linha tem um nome de computador, um valor de sistema operacional (que pode ser Windows 7 OU Windows 10) e, em seguida, uma descrição de um aplicativo (por exemplo, AppName = "Notepad ++", AppVersion = "7.5.6")

ComputerName   | OS           | AppName   | AppVersion
Computer 1     | Windows 7    | App 1     | 1.0
Computer 1     | Windows 7    | App 2     | 1.0
Computer 1     | Windows 7    | App 3     | 1.0
Computer 2     | Windows 10   | App 4     | 1.0
Computer 2     | Windows 10   | App 5     | 1.0
Computer 3     | Windows 10   | App 4     | 1.0
Computer 4     | Windows 7    | App 4     | 1.0
Computer 4     | Windows 7    | App 5     | 1.0
Computer 5     | Windows 7    | App 1     | 1.0
Computer 5     | Windows 7    | App 4     | 1.0
Computer 5     | Windows 7    | App 5     | 1.0

A forma como funciona é assim: se um computador tiver 10 aplicativos instalados, você terá 10 linhas nesta tabela (uma para cada aplicativo). O nome do computador e o sistema operacional serão repetidos (por favor, não inicie uma discussão sobre a 2ª forma normal... esta é estritamente uma pergunta sobre uma consulta para resolver um problema).

Então, o problema que preciso resolver é: preciso encontrar uma lista de computadores ONDE o sistema operacional é o Windows 7 (isso é EAAAASY), mas ...

Esses computadores só devem aparecer na minha lista se TODOS os aplicativos relatados nesta tabela para esse PC forem relatados como sendo usados ​​em outros computadores com Windows 10.

Se um computador com Windows 7 tiver aplicativos que não estão listados em um computador com Windows 10, eles não devem aparecer nesta lista. Todo e qualquer aplicativo para computador deve estar em conformidade com esta regra para que o computador se qualifique na minha lista.

A ideia é saber que os computadores que estou recebendo no meu SELECT têm todos os aplicativos que eu sei que funcionam para o Windows 10, então eles devem ser mais seguros para migrar.

Amostra:

Para quem está tentando isso em casa, aqui está um CREATE TABLE e alguns INSERTs, você tem a ideia certa de como são meus dados

-- Create the table
 CREATE TABLE Computers (
    ComputerName    varchar(255),
    OS              varchar(255),
    AppName         varchar(255),
    AppVersion      varchar(10)
 )

 -- Insert some values...
 INSERT INTO Computers
 VALUES 
 ('Computer 1', 'Windows 7', 'App 1', '1.0'),
 ('Computer 1', 'Windows 7', 'App 2', '1.0'),
 ('Computer 1', 'Windows 7', 'App 3', '1.0'),
 ('Computer 2', 'Windows 10', 'App 4', '1.0'),
 ('Computer 2', 'Windows 10', 'App 5', '1.0'),
 ('Computer 3', 'Windows 10', 'App 4', '1.0'),
 ('Computer 4', 'Windows 7', 'App 4', '1.0'),
 ('Computer 4', 'Windows 7', 'App 5', '1.0'),
 ('Computer 5', 'Windows 7', 'App 1', '1.0'),
 ('Computer 5', 'Windows 7', 'App 4', '1.0'),
 ('Computer 5', 'Windows 7', 'App 5', '1.0')
  • Com este exemplo, o único computador que se qualifica para minha consulta seria o Computador 4, pois é o único computador com Windows 7 em que TODOS os aplicativos associados a ele (Aplicativos 4 e 5) também existem em pelo menos uma linha para um PC com Windows 10.

  • O computador 5 não se qualifica porque um dos aplicativos associados a ele ("Aplicativo 1") só existe neste conjunto em outro computador Windows 7 (Computador 1), portanto não posso dizer que este aplicativo já está funcionando em um PC com Windows 10 .

  • Os computadores 2 e 3 são Windows 10. Então, isso deve ser suficiente para descartá-los....

  • O computador 1 também NÃO deve se qualificar, todos os seus aplicativos não estão sendo executados em PCs com Windows 10.

Espero que faça sentido...

select t-sql
  • 2 respostas
  • 84 Views
Martin Hope
Martin Surasky
Asked: 2018-01-12 11:09:56 +0800 CST

A preparação de uma instalação de cluster falha na etapa de regras de suporte de instalação (não em cluster ou o serviço de cluster está ativo e online)

  • 2

Hoje eu estava tentando instalar um ambiente de cluster do SQL Server 2008 R2 em servidores Windows Server 2012 R2 e depois de fazer todas as etapas necessárias para preparar o cluster (como Criar um disco virtual iSCSI para cluster do Windows, configurar os dois membros do nó, instalar o .net Framework 3.5, Adicionando o Recurso de Failover de Cluster do Windows, configurando o cluster, etc...) Continuei executando a instalação "Preparação Avançada de Cluster" no SQL Server 2008 R2.

Durante uma das etapas iniciais (a que verifica as regras), acho que a etapa "Não está em cluster ou o serviço de cluster está ativo e online" falha...

insira a descrição da imagem aqui

Após a inspeção dos detalhes, vejo que a mensagem "a máquina está em cluster, mas o cluster não está online..."

insira a descrição da imagem aqui

... não tenho certeza do motivo, pois quando inspeciono o cluster usando o Failover Cluster Manager tudo parece estar beminsira a descrição da imagem aqui

insira a descrição da imagem aqui

Eu posso até fazer um failback nas unidades e um failover sem problemas. Também executei o relatório de validação e tudo voltou verde...

Alguma ideia do que poderia estar faltando?


Mais investigação

Isto é o que eu encontrei ao procurar no SystemConfigurationCheck_Report.htm (no log de bootstrap)... aparentemente é mais ou menos a mesma mensagem. Todas as outras verificações são "verdes" (OK).

insira a descrição da imagem aqui

Além disso, em mais investigações de log de bootstrap, encontrei esta seção (no detail.txt de uma de minhas execuções) que parece lançar mais alguma luz...

insira a descrição da imagem aqui

O que significa "a chave dada não estava presente no dicionário"... não posso dizer. Eu não sou um especialista em solução de problemas de cluster avançado, então estou apenas especulando aqui ... Eu atualizei o conteúdo do meu log de bootstrap aqui se alguém achar que pode encontrar mais "pistas" que não consegui encontrar. .


Mais descobertas (24 horas depois...) Portanto, não consegui encontrar a causa raiz do problema, mesmo seguindo as sugestões desta página e deste KB , nada parece me ajudar com essa Regra de Suporte!

Hoje, por desespero, tentei executar a "Preparação Avançada de Cluster" usando a imagem de instalação do SQL Server 2017 Enterprise e essa de fato funcionou sem problemas!

insira a descrição da imagem aqui

Portanto, o problema parece estar limitado aos binários de cluster do SQL Server 2008 R2 (algo que foi resolvido em algum momento após o 2008 R2). Esta não é uma solução para mim (pois preciso fazer isso funcionar em 2008 R2 por vários motivos), mas pelo menos esclarece um pouco mais o problema (espero) e me diz que não há nada de errado com a instalação e configuração do cluster de failover por se, mas mais de como o SQL Server 2008 R2 interpreta que eu tenho um cluster totalmente funcional.

sql-server sql-server-2008-r2
  • 3 respostas
  • 5363 Views
Martin Hope
Martin Surasky
Asked: 2017-10-26 12:50:13 +0800 CST

Erro após aplicar a atualização do SQL Server 2008 R2 10.50.6542 (compilação mais recente)

  • 2

Primeiro o problema: desde que apliquei o patch mais recente ao SQL Server 2008 R2 (lançado em 3 de março de 2016) que deveria ter levado meu servidor para compilar 10.50.6542, não consigo mais me conectar. Este patch é para fornecer suporte a TLS 1.2.

O erro que estou recebendo (ao tentar conectar usando uma ferramenta cliente diretamente no servidor) é

"A connection was succesfully established with the server, but then an error occurred during the pre-login handshake"

insira a descrição da imagem aqui

O servidor é um Windows Server 2012 R2 e está executando o NET Framework 4.6.1 (alguns posts apontam para uma versão mais antiga do .NET framework causando esse problema, mas esse não é o meu caso).

Eu tentei executar os seguintes pacotes para ver se isso resolveria ...

  • SQL Server Native Client (x86 e x64)
  • Pacote cumulativo de hotfix 3106993 para o .NET Framework 2.0 SP2 no Windows Server 2012 R2 e Windows 8.1
  • Pacote cumulativo de hotfix 3106994 para o .NET Framework 4.0 no Windows
  • Pacote cumulativo de hotfix 3099845 para o .NET Framework 4.5.2, 4.5.1 e 4.5

... Nada disso foi necessário, e nada ajudou...

Alguém já experimentou isso? Alguma ideia ou sugestão?

Obrigado!

Uma atualização 24 horas depois , inspecionei o log de erros do SQL Server procurando entradas que incluíssem apenas um início, 5 tentativas de login com falha e uma parada. De todas as mensagens nesse período de tempo (107 entradas no total), a única mensagem que inclui algo como um erro é

 The SQL Server Network Interface library could not register the Service Principal Name (SPN) for the SQL Server service. Error: 0x2098, state: 15. Failure to register an SPN may cause integrated authentication to fall back to NTLM instead of Kerberos. This is an informational message. Further action is only required if Kerberos authentication is required by authentication policies.

Esta mensagem, no entanto, foi relatada na inicialização do servidor antes mesmo de eu aplicar o patch, então estou 100% confiante de que é um arenque vermelho. Nenhum log é inserido no log de erros do SQL Server como resultado das tentativas de logon com falha.

Outra atualização

Com base nas sugestões que recebi das pessoas aqui, baixei e instalei a versão mais recente do SSMS (17.3) no servidor. Quando tentei conectar desta vez, recebi um erro diferente, então parece que estou avançando, mas ainda não cheguei lá.

insira a descrição da imagem aqui

Portanto, parece que é verdade que as versões antigas do SSMS têm como alvo o .net 3.5 e mesmo se você tiver versões mais recentes do .net framework as conexões do cliente não funcionarão, a questão agora é por que ainda recebo este "Nenhum processo está do outro lado do canal", mesmo quando a maioria dos componentes do cliente foi atualizada.

Mais algumas coisas que investiguei (e descartei)

  • A ordem do “protocolo do cliente” no SQL Server Configuration Manager parece ser a correta, pois o TCP/IP está no topo. Isso foi sugerido como uma possível causa de problemas, mas no meu caso está tudo configurado adequadamente (aparentemente)

insira a descrição da imagem aqui

  • Tentei instalar o “Microsoft ODBC Driver for SQL Server” conforme sugerido no suporte TLS 1.2 para Microsoft SQL Server , mas isso também não fez diferença. Após a instalação, a mensagem de erro é a mesma

  • Tentei adicionar as chaves do registro em HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2 (também como sugerido no mesmo artigo ). Mesmo erro…

sql-server patching
  • 2 respostas
  • 1745 Views
Martin Hope
Martin Surasky
Asked: 2017-08-19 08:26:59 +0800 CST

Impedir que o código T-SQL que não é compatível interrompa o script

  • 2

Aqui está um desafio interessante que não consegui resolver... Há uma boa consulta T-SQL que eu, Jonathan Kehayias, criei há algum tempo para encontrar problemas de conversões implícitas nas consultas que eu amo. O problema é que essa consulta não funciona em bancos de dados com níveis de compatibilidade antigos (80 e anteriores). Suponho que isso ocorre porque as funções com valor de tabela (TVFs) foram introduzidas no SQL Server 2005.

O problema é que, se eu usar esse script para validar conversões implícitas em todos os meus bancos de dados assim:

declare @sql    nvarchar(4000)
set @sql =
'IF EXISTS (SELECT * FROM sys.databases WHERE name = ''?'' AND compatibility_level >= 90)
BEGIN   
    USE ['+'?'+'] ;
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    SET QUOTED_IDENTIFIER ON
    DECLARE @dbname SYSNAME 
    SET @dbname = QUOTENAME(DB_NAME())

    BEGIN TRY
        RAISERROR(''?'', 0, 42) WITH NOWAIT;
        WITH XMLNAMESPACES 
            (DEFAULT ''http://schemas.microsoft.com/sqlserver/2004/07/showplan'') 
        INSERT INTO DMTAdmin.dbo.BestPractices_ImplicitConversions
        SELECT 
            GETDATE(),
            @dbname,
            stmt.value(''(@StatementText)[1]'', ''varchar(max)''), 
            t.value(''(ScalarOperator/Identifier/ColumnReference/@Schema)[1]'', ''varchar(128)''), 
            t.value(''(ScalarOperator/Identifier/ColumnReference/@Table)[1]'', ''varchar(128)''), 
            t.value(''(ScalarOperator/Identifier/ColumnReference/@Column)[1]'', ''varchar(128)''), 
            ic.DATA_TYPE AS ConvertFrom, 
            ic.CHARACTER_MAXIMUM_LENGTH AS ConvertFromLength, 
            t.value(''(@DataType)[1]'', ''varchar(128)'') AS ConvertTo, 
            t.value(''(@Length)[1]'', ''int'') AS ConvertToLength, 
            query_plan 
        FROM sys.dm_exec_cached_plans AS cp 
        CROSS APPLY sys.dm_exec_query_plan(plan_handle) AS qp 
        CROSS APPLY query_plan.nodes(''/ShowPlanXML/BatchSequence/Batch/Statements/StmtSimple'') AS batch(stmt) 
        CROSS APPLY stmt.nodes(''.//Convert[@Implicit="1"]'') AS n(t) 
        JOIN INFORMATION_SCHEMA.COLUMNS AS ic 
            ON QUOTENAME(ic.TABLE_SCHEMA) = t.value(''(ScalarOperator/Identifier/ColumnReference/@Schema)[1]'', ''varchar(128)'') 
            AND QUOTENAME(ic.TABLE_NAME) = t.value(''(ScalarOperator/Identifier/ColumnReference/@Table)[1]'', ''varchar(128)'') 
            AND ic.COLUMN_NAME = t.value(''(ScalarOperator/Identifier/ColumnReference/@Column)[1]'', ''varchar(128)'') 
        WHERE t.exist(''ScalarOperator/Identifier/ColumnReference[@Database=sql:variable("@dbname")][@Schema!="[sys]"]'') = 1
    END TRY
    BEGIN CATCH
    END CATCH;
END
'

exec sp_msforeachdb @sql

... o script vai bombar porque 9 dos meus bancos de dados bizzilion estão no nível de compatibilidade 80! Você pode facilmente tentar isso criando um banco de dados em uma caixa com um nível de compatibilidade antigo e executando este script, você verá que ele falhará.

Como você pode ver, meu script está usando um TRY/CATCH, mas isso não ajudou porque o problema é na verdade um erro de compilação (e não um erro de tempo de execução).

Também tentei com um IF logo no início desse T-SQL dinâmico (como você pode ver), mas, novamente, os pontos de decisão não impedirão que o código seja compilado para esses bancos de dados e falhe.

Nada do que tentei até agora me ajuda a evitar esse erro e, como resultado, o trabalho que tenho relata como "falha" mesmo quando estou bem com esses bancos de dados específicos sendo "ignorados" se eu pudesse.

Algum de vocês tem uma idéia de como eu poderia implementar isso para que eu pudesse pesquisar em todos, exceto nos bancos de dados de nível de compatibilidade antigos?

sql-server t-sql
  • 2 respostas
  • 107 Views
Martin Hope
Martin Surasky
Asked: 2017-05-19 08:55:20 +0800 CST

Estatísticas em tabelas temporárias

  • 6

Rápido e simples... por que este sp está falhando quando tento recuperar estatísticas para uma das colunas na tabela temporária?

CREATE PROCEDURE dbo.Demo
AS
BEGIN
SET NOCOUNT ON
-- Declare table variable
CREATE TABLE #temp_table (ID INT)
DECLARE @I INT = 0

-- Insert 10K rows
    WHILE @I < 100
    BEGIN
        INSERT INTO #temp_table VALUES (@I)

        SET @I=@I+1
    END

-- Display all rows and output execution plan (now the EstimateRow is just fine!)
SELECT * FROM #temp_table

-- Is the object there
SELECT OBJECT_ID('tempdb..#temp_table')

-- How about statistics
DBCC SHOW_STATISTICS ('tempdb..#temp_table', 'id')
END;

Não entendo, recebo uma mensagem dizendo que não há estatísticas criadas no id da coluna

Could not locate statistics 'id' in the system catalogs.

Dito isso, vi um artigo de Paul White onde essa técnica é usada e realmente funciona.

https://sqlkiwi.blogspot.com/2012/08/temporary-tables-in-stored-procedures.html

Alguma ideia?

sql-server statistics
  • 1 respostas
  • 4364 Views
Martin Hope
Martin Surasky
Asked: 2017-05-10 08:18:53 +0800 CST

Como estender volumes nas caixas do SQL Server?

  • 16

Aqui está uma pergunta para os sys ops por aí (ou para aqueles que passaram por essa experiência antes).

Minha empresa deseja alocar espaço em disco adicional em caixas existentes do SQL Server em produção. Estamos nos perguntando se a extensão de um volume ("Estender Volume..." no Gerenciamento de Disco) pode ser feita ONLINE ou se o SQL Server Service precisa ser desligado.

Algum motivo pelo qual o SQL Server Service deve ser interrompido para fazer isso ou não há problema em apenas executar essa operação durante o dia?

Apenas no caso de as especificações do sistema serem relevantes. Esta é uma caixa real (sem virtualização) executando o Windows 2012 R2 e o SQL Server 2008 R2.

Obrigado!

sql-server sql-server-2008-r2
  • 1 respostas
  • 5098 Views
Martin Hope
Martin Surasky
Asked: 2017-03-17 07:24:50 +0800 CST

Definindo o valor de memória máxima do servidor correto em um ambiente clusterizado do SQL Server ativo/ativo

  • 1

Eu dei uma olhada na troca de pilha de dba e não consegui encontrar uma resposta para esta, então aqui vai minha preocupação. Espero que alguém tenha feito alguma pesquisa sobre isso e possa fornecer uma resposta confiável.

Temos um cluster Ativo/Ativo do SQL Server em execução em 2 nós. SQLA é o nó padrão para uma instância com a outra (SQLB) como failover e vice-versa (nó padrão SQLB para a outra instância com SQLA como failover). Esses servidores estão sendo executados em caixas físicas com 64 GB de RAM

Temos que configurar "Max Server Memory" e existem 2 teorias por aqui

  • Primeira teoria: siga a abordagem de Jonathan Kehayias praticamente universalmente aceita que, em poucas palavras, é assim "reserve 1 GB de RAM para o sistema operacional, 1 GB para cada 4 GB de RAM instalados de 4 a 16 GB e, em seguida, 1 GB para cada 8 GB de RAM instalados acima de 16 GB de RAM." Isso deixará cada caixa com uma configuração de memória máxima do servidor de 53 GB
  • Segunda teoria: precisamos limitar a memória máxima do servidor a um valor que permita que o nó secundário cuide da outra instância se ocorrer um failover. Isso limita cada instância a um valor muito menor (cerca de 30 GB para que você tenha 30 GB x 2 + 4 GB para o sistema operacional = 64 GB)

À primeira vista, a primeira teoria seria desejável, pois dá a cada instância um espaço de memória muito maior, mas algumas pessoas (inclusive eu) não têm certeza do que acontece se você fizer failover e tiver 2 instâncias na mesma caixa, cada uma com uma memória máxima do servidor de 53 GB de RAM.

Você sabe qual é o caminho a seguir com esse cenário? alguma dessas duas abordagens está certa? ou você tem razões válidas para que uma terceira abordagem seja usada? você conhece algum post sério de blog ou white paper para apoiá-lo com evidências?

Obrigado a todos!

sql-server memory
  • 1 respostas
  • 706 Views
Martin Hope
Martin Surasky
Asked: 2014-02-13 10:45:24 +0800 CST

Como exportar todas as informações relacionadas à segurança de um banco de dados SQL Server

  • 14

Como vocês provavelmente sabem, o SQL Server não fornece uma solução pronta para exportar todas as instruções relacionadas à segurança que são declaradas para cada elemento no banco de dados (tanto no nível do banco de dados quanto no nível do objeto)

Estou falando sobre a capacidade de obter essas informações

  • Todos os usuários
  • Todas as funções definidas pelo usuário
  • Todas as permissões no nível do banco de dados (por exemplo, GRANT CREATE FUNCTION)
  • Todas as permissões no nível do objeto (por exemplo, GRANT SELECT ON OBJECT::xxx)

Você pensaria que o SQL Server DEVE ter algo assim, mas nem o SQL Server Export Wizard ou os vários scripts que são gerados como resultado de clicar com o botão direito do mouse nos objetos capturam essas informações.

Eu vi on-line muitas "soluções possíveis" diferentes usando scripts sem curadoria que as pessoas publicam graciosamente, mas como tenho que ter 100% de certeza de que todas as informações de segurança são capturadas, não posso confiar totalmente nesses scripts.

Eu tenho a opção de usá-los como ponto de partida para escrever algo, mas odeio ter que reinventar a roda para um requisito que você acha que muitas pessoas podem ter.

Não existe uma ferramenta fornecida por alguém (seja como parte do produto SQL Server ou uma ferramenta de terceiros) que possa fornecer essas informações de forma confiável?

Ou, pelo menos, existe um script suportado pela comunidade que a maioria das pessoas concordaria que "fará o trabalho"?

Obrigado!

sql-server security
  • 3 respostas
  • 49702 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

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

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve