O bloqueio de um banco de dados SQL Server com PHP




Eu estou querendo segurança extra para um determinado ponto no meu aplicativo web. Então, eu quero bloquear o banco de dados (SQL Server 2005). Qualquer sugestão ou é este mesmo necessário com o SQL Server?


**Editar em questão:**


A consulta está falhando silenciosamente sem mensagens de erros registrados, e não ocorre dentro de uma transação.


**Solução final:**


Eu nunca fui capaz de resolver o problema, no entanto o que acabei fazendo era mudar para MySQL e usando uma consulta de nível transacional aqui. Este não era o principal ou mesmo a principal razão para mudar. Eu estava tendo problemas com o SQL Server e que me permitiu ter o nosso CMS e várias outras ferramentas todos em execução no mesmo banco de dados. Anterior tivemos um SQL Server e um banco de dados executando o MySQL para executar o nosso site. A porta foi um pouco sobre o demorado no entanto, a longo prazo eu sinto que vai funcionar muito melhor para o site e os negócios.
Eu suponho que você tem três opções.


1. Definir permissões de usuário para que o usuário x pode apenas ler a partir do banco de dados.
2. Defina o banco de dados em modo de usuário único para que apenas uma conexão pode acessá-lo


sp\_dboption 'myDataBaseName', único, verdadeiro
3. Defina o banco de dados para somente leitura


sp\_dboption 'myDataBaseName', só de leitura, verdadeiro
<p>hmm, então já está salvo no banco com essas coisas. bom, você tem problemas de codificação em algum lugar. seja nos seus arquivos php, html ou mesmo no banco. tenta usar essa função antes de fazer as queries pra ver se resolve daniel.</p>
<pre class="prettyprint"><code>mysqli\_set\_charset ( $conexao , &#34;utf8&#34;)</code></pre>
<p>tenta inserir e remover registros depois de usar essa função pra ver se resolve.</p> <p>não mexa com o banco de dados mysql. há muito mais acontecendo lá do que apenas a tabela de usuários. sua melhor aposta é o comando " <a href="https://dev.mysql.com/doc/refman/5.5/en/show-grants.html">show grants</a> for". eu tenho muitos aliases e funções de manutenção da cli no meu .bashrc (na verdade, meus .bash\_aliases que eu forneço no meu .bashrc). esta função:</p><pre><code>mygrants() { mysql -b -n $@ -e "select distinct concat( 'show grants for \'', user, '\'@\'', host, '\';' ) as query from mysql.user" | \ mysql $@ | \ sed 's/\(grant .*\)/\1;/;s/^\(grants for .*\)/## \1 ##/;/##/{x;p;x;}' } </code></pre><p>o primeiro comando do mysql usa sql para gerar sql válido, que é canalizado para o segundo comando do mysql. a saída é então canalizada através do sed para adicionar comentários bonitos.</p><p>o $ @ no comando permitirá que você o chame como: mygrants --host = prod-db1 --user = admin --password = secret</p><p>você pode usar seu kit de ferramentas unix completo da seguinte maneira:</p><pre><code>mygrants --host=prod-db1 --user=admin --password=secret | grep rails\_admin | mysql --host=staging-db1 --user=admin --password=secret </code></pre><p>essa é a maneira certa de mover usuários. sua mysql acl é modificada com sql puro.</p> <p>o operador <a href="http://php.net/manual/en/language.operators.errorcontrol.php"><code>@</code></a> tells php para suprimir mensagens de erro, para que elas não sejam mostradas.</p><p>por exemplo, usando:</p><pre><code>$result = mysql\_query("this is an invalid query"); </code></pre><p>resultaria em um aviso sendo mostrado, informando que a consulta mysql é inválida, enquanto</p><pre><code>$result = @mysql\_query("this is still an invalid query"); </code></pre><p>não faria.</p><p>note, no entanto, que esta é uma prática de programação muito ruim, pois não faz com que o erro desapareça, apenas os esconde e torna a depuração muito pior, já que você não consegue ver o que está realmente errado com seu código.</p><p>em vez de usar <code>@</code>, você deve desativar <s><code>error\_reporting</code> e <code>display\_errors</code></s> apenas <code>display\_errors</code> em <a href="http://no.php.net/manual/en/errorfunc.configuration.php">php.ini</a> </p> olá [@jheni\_sds](/u/jheni_sds) tudo bem? já existe a opção de bloquear a função contactless. se vc não se sente confortável é só pedir pelo chat. dá uma olhada nesse tópico :slightly\_smiling\_face:

[bloqueio da função contactless disponível](https://comunidade.nubank.com.br/t/bloqueio-da-funcao-contactless-disponivel/61211) <p>tem que colocar o nome do banco de dados depois do localhost (localhost/loja-virtual), você conectou o manager e verificaou se deu nome da base de dados realmente como loja-virtual??? coloca a mensagem de erro ai blz</p> <p>dá true... 
consegui resolver aqui... refiz todo o curso a partir do início. e instalei novamente o hsqldb.jar.
não deu mais erro.
obrigado a todos pela ajuda!</p> olá [@bruno\_oliveira27](/u/bruno_oliveira27) !

como esclarecido acima, no boleto de alguns tributos há essa limitação de bancos conveniados, é necessário atenção antes de confirmar o pagamento, o valor pode ter chegado a caixa e a mesma não deu baixa, para ter certeza que isso não aconteceu, entre no site do banco centra… Veja esta pagina com vários links sobre o assunto
  
http://br.ccm.net/s/msn+bloqueado Olá Helenice,
  

  
O computador, está bloqueado porque esqueceu a senha ou por outra razão?
  

  
Obrigada por esclarecer <p>consegui resolver!
eu estava usando browser-sync, quando parei de usar o server funcionou.
acho que o problema era que o browser-sync estava ocupando a porta 3000 do localhost...</p>