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 / dba / 问题

All perguntas(dba)

Martin Hope
Mohamed Mahyoub
Asked: 2016-01-09 02:40:19 +0800 CST

Como posso descartar todos os gatilhos em um único banco de dados?

  • 18

Tenho um banco de dados com 104 triggers, existe alguma forma de deletar todos os triggers com um único comando de um único banco de dados chamado 'system_db_audits?

sql-server sql-server-2008
  • 4 respostas
  • 29527 Views
Martin Hope
Ravi
Asked: 2015-11-17 18:56:34 +0800 CST

Por que o SQL Injection não acontece nesta consulta dentro de um procedimento armazenado?

  • 18

Eu fiz o seguinte procedimento armazenado:

ALTER PROCEDURE usp_actorBirthdays (@nameString nvarchar(100), @actorgender nvarchar(100))
AS
SELECT ActorDOB, ActorName FROM tblActor
WHERE ActorName LIKE '%' + @nameString + '%'
AND ActorGender = @actorgender

Agora, eu tentei fazer algo assim. Talvez eu esteja fazendo isso errado, mas quero ter certeza de que tal procedimento pode impedir qualquer SQL Injection:

EXEC usp_actorBirthdays 'Tom', 'Male; DROP TABLE tblActor'

A imagem abaixo mostra o SQL acima sendo executado no SSMS e os resultados sendo exibidos corretamente ao invés de um erro:

insira a descrição da imagem aqui

A propósito, adicionei essa parte após o ponto e vírgula depois que a consulta foi executada. Depois executei novamente, mas quando verifiquei se a tabela tblActor existe ou não, ela ainda estava lá. Estou fazendo algo errado? Ou isso é realmente à prova de injeção? Acho que o que estou tentando perguntar aqui também é que um procedimento armazenado como este é seguro? Obrigada.

sql-server sql-server-2008
  • 2 respostas
  • 3849 Views
Martin Hope
Marcello Miorelli
Asked: 2015-10-20 03:18:59 +0800 CST

Mensagem de erro - a permissão de exibição do estado do servidor foi negada - ao se conectar ao SQL Server 2014 usando o SQL Server 2012 Management Studio

  • 18

Ao clicar com o botão direito do mouse em uma tabela e selecionar "selecionar as 1000 principais linhas", recebo este erro:

insira a descrição da imagem aqui

Existe alguma solução alternativa, além da atualização óbvia para o SQL Server 2014?

sql-server sql-server-2012
  • 3 respostas
  • 54175 Views
Martin Hope
Sébastien Clément
Asked: 2015-10-09 13:08:53 +0800 CST

Os pontos de verificação estão ocorrendo com muita frequência durante o pg_restore

  • 18

No PostgreSQL 9.2.2 (Windows 32 bits), tenho um pg_restorecomando que resulta sistematicamente em avisos de log sobre a frequência do ponto de verificação, por exemplo:

LOG:  checkpoints are occurring too frequently (17 seconds apart)
HINT:  Consider increasing the configuration parameter "checkpoint_segments".

O banco de dados tem cerca de 3,3 Gb de tamanho com 112 tabelas/160 exibições e restaura em cerca de 14 minutos.

É normal que isso ocorra durante um pg_restore?

postgresql restore
  • 1 respostas
  • 34568 Views
Martin Hope
Tomas Kubes
Asked: 2015-09-06 00:56:22 +0800 CST

Por que uma coluna computada NOT NULL é considerada anulável em uma exibição?

  • 18

tenho uma tabela:

CREATE TABLE [dbo].[Realty](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [RankingBonus] [int] NOT NULL,
    [Ranking]  AS ([Id]+[RankingBonus]) PERSISTED NOT NULL
    ....
)

E uma vista:

CREATE View  [dbo].[FilteredRealty] AS
 SELECT 
realty.Id as realtyId,
...
COALESCE(realty.Wgs84X, ruian_cobce.Wgs84X, ruian_obec.Wgs84X) as Wgs84X,
COALESCE(realty.Wgs84Y, ruian_cobce.Wgs84Y, ruian_obec.Wgs84Y) as Wgs84Y,
realty.Ranking,
...
FROM realty
JOIN Category ON realty.CategoryId = Category.Id
LEFT JOIN ruian_cobce ON realty.cobceId = ruian_cobce.cobce_kod
LEFT JOIN ruian_obec ON realty.obecId = ruian_obec.obec_kod
LEFT JOIN okres ON realty.okresId = okres.okres_kod
LEFT JOIN ExternFile ON realty.Id = ExternFile.ForeignId AND ExternFile.IsMain = 1
                     AND ExternFile.ForeignTable = 5
INNER JOIN Person ON realty.OwnerId = Person.Id
WHERE Person.ConfirmStatus = 1

Eu tenho um modelo dbml em C# (LinqToSQL) com a exibição FilteredRealty nele. O campo [Ranking] é reconhecido como um int anulável e, portanto, tenho que corrigir o tipo no código gerado toda vez que altero algo no banco de dados. Isso é muito frustrante para mim e muito trabalho manual.

Não há agregações usadas no FilteredRealty (em relação a esta questão relacionada ).

Por que a coluna Classificação da exibição é considerada anulável se Realty.Ranking não for anulável?

sql-server view
  • 2 respostas
  • 9807 Views
Martin Hope
Luciano Andress Martini
Asked: 2015-08-29 11:51:37 +0800 CST

Problema de relacionamento de entidade

  • 18

Tenho 4 tabelas relacionadas assim (é um exemplo):

Company:
ID
Name
CNPJ

Department:
ID
Name
Code
ID_Company 

Classification:
ID
Name
Code
ID_Company

Workers:
Id 
Name
Code
ID_Classification
ID_Department

Suponha que eu tenha um classificationcom id = 20, id_company = 1. E uma departmentque tem id_company = 2(que representa outra empresa).

Isso permitirá a criação de um trabalhador que seja de duas empresas, pois a classificação e o departamento estão vinculados à empresa separadamente. Não quero que isso aconteça, então acho que tenho um problema com meus relacionamentos e não sei como resolver.

database-design constraint
  • 4 respostas
  • 1088 Views
Martin Hope
Victor
Asked: 2015-08-26 03:58:06 +0800 CST

Implementando sistema de versionamento com MySQL

  • 18

Sei que isso já foi perguntado aqui e aqui , mas tenho a mesma ideia com uma possível implementação diferente e preciso de ajuda.

Inicialmente eu tinha minha blogstoriestabela com essa estrutura:

| Column    | Type        | Description                                    |
|-----------|-------------|------------------------------------------------|
| uid       | varchar(15) | 15 characters unique generated id              |
| title     | varchar(60) | story title                                    |
| content   | longtext    | story content                                  |
| author    | varchar(10) | id of the user that originally wrote the story |
| timestamp | int         | integer generated with microtime()             |

Depois que decidi que queria implementar algum sistema de versionamento para cada história do blog, a primeira coisa que me veio à cabeça foi criar uma tabela diferente para guardar as edições ; depois disso, pensei que poderia modificar a tabela existente para conter versões em vez de edições . Esta é a estrutura que me veio à mente:

| Column        | Type          | Description                                       |
|------------   |-------------  |------------------------------------------------   |
| story_id      | varchar(15)   | 15 characters unique generated id                 |
| version_id    | varchar(5)    | 5 characters unique generated id                  |
| editor_id     | varchar(10)   | id of the user that commited                      |
| author_id     | varchar(10)   | id of the user that originally wrote the story    |
| timestamp     | int           | integer generated with microtime()                |
| title         | varchar(60)   | current story title                               |
| content       | longtext      | current story text                                |
| coverimg      | varchar(20)   | cover image name                                  |

As razões pelas quais eu vim aqui:

  • O uidcampo da tabela inicial era UNIQUE na tabela. Agora, o story_idnão é mais exclusivo. Como devo lidar com isso? (Achei que poderia abordar story_id = xe encontrar a versão mais recente, mas isso parece consumir muitos recursos, então, por favor, dê seu conselho)
  • author_ido valor do campo está se repetindo em cada linha da tabela. Onde e como devo guardá-lo?

Editar

O processo de geração de códigos únicos está na CreateUniqueCodefunção:

trait UIDFactory {
  public function CryptoRand(int $min, int $max): int {
    $range = $max - $min;
    if ($range < 1) return $min;
    $log = ceil(log($range, 2));
    $bytes = (int) ($log / 8) + 1;
    $bits = (int) $log + 1;
    $filter = (int) (1 << $bits) - 1;
    do {
        $rnd = hexdec(bin2hex(openssl_random_pseudo_bytes($bytes)));
        $rnd = $rnd & $filter;
    } while ($rnd >= $range);
    return $min + $rnd;
  }
  public function CreateUID(int $length): string {
    $token = "";
    $codeAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $codeAlphabet.= "abcdefghijklmnopqrstuvwxyz";
    $codeAlphabet.= "0123456789";
    $max = strlen($codeAlphabet) - 1;
    for ($i=0; $i < $length; $i++) {
        $token .= $codeAlphabet[$this->CryptoRand(0, $max)];
    }
    return $token;
  }
}

O código está escrito em Hack e foi originalmente escrito em PHP por @Scott em sua resposta .

Os campos author_ide editor_id podem ser diferentes, pois existem usuários com permissões suficientes para editar as histórias de qualquer pessoa.

mysql database-design
  • 3 respostas
  • 14529 Views
Martin Hope
BobNoobGuy
Asked: 2015-08-15 09:54:35 +0800 CST

Por que funções de valor escalar precisam de permissão de execução em vez de seleção?

  • 18

Eu estou querendo saber por que, para função de valor escalar, que eu tenho que conceder ao usuário para executar em vez de apenas um select?

enquanto isso, uma função com valor de tabela funciona bem com apenas permissão ou db_datareaderassociação de seleção.

para ser mais claro aqui está o meu exemplo: Eu preciso de um usuário que tenha permissão somente leitura para o banco de dados. então eu criei um usuário chamado testUsere dei a ele uma db_datareaderassociação. então eu criei uma função com valor de tabela chamada fn_InlineTable. E tudo é ótimo. testUserexecuta esse SQL o dia todo

select * from dbo.fn_InlineTable

então eu preciso de uma função escalar, então criei uma função escalar chamada fn_ScalarTest. testUsernão pode executar este SQL

Select dbo.fn_ScalarTest(1) 

Bem compreensivelmente: é porque eu não dei permissão "testUser" para executar fn_ScalarTest.

Minha pergunta é: com base neste link https://stackoverflow.com/questions/6150888/insert-update-delete-with-function-in-sql-server , que diz que FUNCTIONnão pode ser usado para executar ações que modificam o estado do banco de dados . Então, por que não permitir que uma função escalar seja usada com a mesma permissão "SELECT" em vez de permissão de execução?

Espero que minha pergunta faça sentido. Obrigada.

sql-server t-sql
  • 2 respostas
  • 42727 Views
Martin Hope
Rakesh
Asked: 2015-08-14 05:06:31 +0800 CST

Impacto no desempenho de Latin1_General_BIN ao alterar o agrupamento padrão do banco de dados

  • 18

Eu configurei o agrupamento de banco de dados para Latin1_General_BIN, para fazer comparações de strings com distinção entre maiúsculas e minúsculas. Isso terá impacto no desempenho? Isso terá algum impacto nas operações DML ou DDL no banco de dados? O banco de dados já existe com tabelas nele.

sql-server sql-server-2008-r2
  • 2 respostas
  • 37089 Views
Martin Hope
Adam Matan
Asked: 2015-08-09 04:01:33 +0800 CST

PostgeSQL 9.3: É seguro interromper o VACUUM FULL?

  • 18

Estou usando o PostgreSQL 9.3 no RDS. De vez em quando, executo uma operação VACUUM FULL no banco de dados. No entanto, essa operação pode demorar bastante e bloquear outras tabelas, portanto, pode surgir a necessidade de interromper a operação.

É seguro interromper uma VACUUM FULLoperação que demora muito?

postgresql-9.3 amazon-rds
  • 1 respostas
  • 10045 Views
Prev
Próximo

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