Não é possível definir uma credencial para o principal 'sa'. (Microsoft SQL Server Error: 15535)
Para qualquer um no SQL Server 2005 que se isso não é possível definir uma credencial para o principal 'sa' erro, a correção é simples, direto e simples ... ![]()
Certifique-se de "Mapa de Credencial" está marcada. É isso aí. Tudo que você precisa fazer é verificar o "Mapa de Credencial" e pronto. Para aqueles sem os olhos, é na parte inferior da primeira tela onde você define a senha do usuário (com o botão direito do usuário e selecione "Propriedades")
Este tinha-me coçar a cabeça um pouco, clean install do Visual Studio 2008 (Com Express 2005 Service Pack 2) e SQL Server 2008 SSMS
Como encontrar + parar os ataques de injecção SQL
Arquivado em: . NET , ASP Classic , Hospedagem , IIS 6.0 , Programação 101 , SQL Server
Há um monte de coisas lá fora, os ataques de injeção SQL sobre, mas não há muito o que irá ajudá-lo a descobrir como parar estes ataques ocorram.
Primeiro, vamos falar sobre o que é um SQL Injection Attack realmente é. Algumas pessoas pensam que é um vírus do tipo, que está "dentro do seu site." Não o caso. Estes são os ataques bot por outro vírus de computadores infectados. Eles simplesmente usam uma abordagem de força bruta de exploração URLs que levam POST / GET insumos e tentar enviar os seus próprios dados a eles.
Então, como você seguir estes baixo e detê-los? Para sites powered by Microsoft IIS, aqui estão as nossas sugestões:
- Olhe para o seu IIS logs
Tente pesquisar a palavra "declarar" ou "executar". Se você foi atingido por um ataque, estes mais do que provavelmente aparecem nos logs do IIS - pelo menos para qualquer ataque que foi tentada usando "GET" posts. Se você encontrar quaisquer casos de "declarar" ou "EXECUTAR" estas são as páginas para começar. - Use uma conexão de banco de dados centralizado manipulação
Simples, faça um arquivo centralizado (por exemplo, connection.asp se você estiver usando ASP ) Que lida com todo o seu acesso à DB. Desta forma, é mais fácil para se certificar que você está codificando SQL suas páginas. Você pode facilmente consultas de pesquisa para "declarar" e "EXECUTE" e parar os ataques mortos em suas trilhas. - Implementar uma solução ampla site
Se você estiver executando seu próprio servidor, recomendamos ISAPI_Rewrite de HeliconTech ( http://www.helicontech.com/isapi_rewrite ). Este é um filtro ISAPI que permite que você faça uma variedade de coisas, incluindo a digitalização de dados URL. Isto irá parar 99% dos ataques, sem alterar qualquer código em seu site! \ - Nunca use "sa" como o usuário do banco de dados, criar um usuário para o banco de dados você está trabalhando e depois de remover os privilégios para ler o dbo mestre. Isso impede o atacante de "sniffing" sua estrutura de banco de dados, no entanto, esses ataques têm evoluído de forma que sanitized armazenados ataques procedimento baseado acontecer mesmo com estes tipos de segurança no local. Veja http://www.ngssoftware.com/papers/more_advanced_sql_injection.pdf para obter mais informações sobre esta e outras idéias para evitar ataques de injeção SQL.
Se você já esteve coçando a cabeça se perguntando onde o vazamento em sua programação é (ou ter tido mais de um projeto de alguém), então a melhor maneira de determinar, através de página que o ataque aconteceu é que, verificando os logs do IIS.
Existem muitos scripts disponíveis para limpar, mas a melhor dica é a de backup de hora em hora, e seguir as melhores práticas (alguns dos quais eu destaquei aqui). Boa sorte
Como mover de domínio para uma conta diferente no HELM 4
HELM 3 foi fácil de administrar, uma infinidade de utilidades e ferramentas existentes nos ajudar com tarefas corriqueiras, um dos quais é mover um domínio de uma conta criada no HELM para uma conta diferente. HELM 4 ... sorte não como uma utilidade ... mas a abertura do banco de dados. Verificando a tabela de Contas para o accountid você precisa mover um domínio ... e, em seguida, abrindo a tabela onlineservices, irá mostrar-lhe todos os domínios adicionados no leme e seus associados do accountid. Para alterar o domínio vinculado a uma conta, é tão fácil quanto mudando apenas o accountid para o que você prefere ver.
Espero que esta dica ajude alguns povos como eu poderia encontrar absolutamente nada que indique como fazer isso e tive que descobrir tudo sozinho.
Alterar propriedade de mesa no SQL Server
Arquivado em: Hospedagem , Programação 101 , SQL Server
Recentemente, tive a infeliz caso de um servidor ser vivo configuração e utilizado por apenas um usuário que não foi dbo. Ou o programador não conheço nenhum melhor ou ... bem ... ele era o idiota da aldeia ... de qualquer forma, então ... a com o código. Aqui está uma simples declaração T-SQL que vai buscar e percorrer todos os procedimentos armazenados, tabelas e Exibições e atualizá-los para usar dbo (ou qualquer outro usuário quiser):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | sysobjects WHERE xtype IN ( 'U' , 'V' , 'P' ) AND uid = user_id ( 'olddbuser' ) OPEN tblcur WHILE 1 = 1 BEGIN FETCH tblcur INTO @tbl IF @@fetch_status < 0 BREAK SET @tbl = 'olddbuser.' + @tbl EXEC sp_changeobjectowner @tbl , 'dbo' END DEALLOCATE tblcur DECLARE @ tbl sysname DECLARE CURSOR INSENSITIVE tblcur FOR SELECT nome FROM sysobjects xtype WHERE IN ('U', 'V', 'P' AND uid = user_id) ("olddbuser) tblcur OPEN enquanto 1 1 = BEGIN FETCH INTO tblcur @ tbl IF @ @ fetch_status <0 SET @ BREAK tbl '= olddbuser.' + @ tbl sp_changeobjectowner EXEC @ tbl, 'dbo' END tblcur DEALLOCATE |
Usando OPENROWSET para conectar-se diretamente a outro banco de dados sem um servidor vinculado e executar um procedimento armazenado
Arquivado em: Geral PC Stuff , MSMQ , Programação 101 , SQL Server
1 2 | SELECT * 'SQLOLEDB' , database_location;username;password , 'set fmtonly off exec database.dbo.stored_Procedure' ) AS Whatever FROM OPENROWSET ('SQLOLEDB', database_location; username, senha, "partiu exec database.dbo.stored_Procedure) como qualquer coisa que FMTONLY |
O pedaço de código acima é auto-explicativo. Eu só tenho usado isso em SQL Server 2005, porém, por isso, se ele não funciona no SQL 2000 não venha chorar para mim.
Substituir database_location com o IP / Destino do servidor que você gostaria de conectar-se a
Substitua o username / senha com ... bem ... eu realmente tenho que explicar isso?
Substitua o banco de dados com o catálogo / base de dados que você gostaria de consulta
Substituir stored_Procedure com o procedimento armazenado que você gostaria de executar
O "como qualquer coisa que" é necessário. Você pode nomear essa coisa que você gostaria.
Eu usei o exposto para consulta um banco de dados diretamente para a extração de dados / manipulação. Você poderia ir tão longe quanto a interna aderir a este em suas consultas normais, se você não está fazendo uma atualização / add loop cursor sobre o assunto.
Enjoy. Demorei um pouco para descobrir ![]()
IP para País - converter o endereço IP de número IP
Aqui está uma simples instrução SQL que você pode usar em um procedimento armazenado para determinar o número IP de um endereço IP para comparar com qualquer banco de dados IP para País:
1 2 3 4 5 6 7 8 9 10 11 12 | ( 15 ) ,@1st INT ,@2nd INT ,@3rd INT ,@4th INT SET @ip = '41.243.224.9' SELECT @1st = LEFT ( @ip, CHARINDEX ( '.' ,@ip ) - 1 ) SET @ip = RIGHT ( @ip, LEN ( @ip ) - CHARINDEX ( '.' ,@ip ) ) SELECT @2nd = LEFT ( @ip, CHARINDEX ( '.' ,@ip ) - 1 ) SET @ip = RIGHT ( @ip, LEN ( @ip ) - CHARINDEX ( '.' ,@ip ) ) SELECT @3rd = LEFT ( @ip, CHARINDEX ( '.' ,@ip ) - 1 ) SET @ip = RIGHT ( @ip, LEN ( @ip ) - CHARINDEX ( '.' ,@ip ) ) SELECT @4th = @ip SELECT ( ( @4th ) + ( @3rd * 256 ) + ( @2nd * 65536 ) + ( @1st * 16777216 ) ) DECLARE @ ip VARCHAR (15), @ 1 INT, @ 2 INT, @ 3 INT, INT SET @ 4 @ ip = '41 .243.224.9 'SELECT @ 1 = LEFT (@ ip, CHARINDEX ('. ', @ ip) - 1) SET @ ip direita = (@ ip LEN (@ ip) - CHARINDEX ('.', @ ip)) SELECT @ 2 = LEFT (@ ip, CHARINDEX ('.' @ ip) - 1) SET IP = (ip DIREITO @ @ LEN (@ ip) - CHARINDEX ('.', @ ip)) SELECT @ 3 = LEFT (@ ip, CHARINDEX ('.' @ ip) - 1) SET @ ip = RIGHT (@ ip, LEN (@ ip) - CHARINDEX ('.', @ ip)) SELECT @ @ ip 4 = SELECT ((@ 4) + (3 * 256 @) + (@ 2 * 65536) + (@ 1 * 16777216)) |
Isto permite-lhe dispor de um procedimento SQL tomar a variável de um endereço IP e não ter que converter o endereço IP no primeiro código. Isso deve funcionar para o MySQL, assim com pequenas alterações.
A fórmula é bastante simples e auto-explicativo. Assim que eu encontrar um confiável (quase completo) IP no banco de dados País, eu vou editar este post para refletir que, até agora eu não encontrei nenhuma até mesmo pegar o intervalo de endereço meu país é que é uma verdadeira vergonha. Nem mesmo o código-fonte aberto ip2c projeto PHP pode pegá-lo, o que me faz duvidar da capacidade de ajudar em qualquer programa desenvolvido para determinar automaticamente o país a partir do endereço IP.
Usando um servidor vinculado no SQL 2005 Express para se conectar ao Excel
Estou muito frustrado quando se trata da falta de opções DTS SQL 2005 Express, especialmente quando se trata de importação de planilhas do Excel em uma tabela de referência para que eu possa mais fácil dentro de uma instrução T-SQL para importar dados para meu banco de dados relacional já existente .
Eventualmente, eu encontrei uma pequena jóia que parecia funcionar:
1 2 3 4 5 6 7 8 9 | 'EXCEL2' , 'Excel' , 'Microsoft.Jet.OLEDB.4.0' , 'D: \d ata.xls' , NULL , 'Excel 8.0' , NULL SELECT * FROM excel2... a $ WHERE [ Whatever COLUMN ] IS null Sp_addlinkedserver 'EXCEL2 EXEC "," Excel "," Microsoft.Jet.OLEDB.4.0', 'D: \ d ata.xls', NULL, "Excel 8.0", NULL SELECT * FROM excel2 ... US $ WHERE [O que COLUMN] é nulo |
Efetivamente você alias o documento Excel como um servidor vinculado do SQL (neste exemplo, excel2). Você só precisa fazer isso uma vez. Uma vez que é a configuração que funciona até de ligação com o alias do servidor (ou mover a fonte de dados)
Isso me ajudou tremendamente na obtenção de dados e consulta com de T-SQL, sem ter que importá-lo como eu estou acostumado com o DTS. Você pode querer estar no look-out para as diferenças linguísticas entre os dois, mas um simples COLLATE DATABASE DEFAULT deve fazer o truque na maioria dos casos, quando join'ing interior ou comparar dois dados servidor diferente.
Como configurar um Windows 2003 Web Server
Arquivado em: . NET , ASP Classic , Hospedagem , IIS 6.0 , SQL Server
Toda vez que uma caixa de configuração W2K3 como um servidor Web que faça o seguinte
Fase 1
Copie 1,1 i386 para C: \
1,2 configurar as permissões em todas as partições do Windows
- Deixar
Administradores (completo)
System (completo)
Remover Outras vendas
Administrador 1,3 Renomear
1,4 Machine Renomear
1,5 Reboot
1,6 Instalar atualizações do Windows (não o. Frameworks NET)
Adicionar 1,7 IP para TCP / IP
Adicionar 1,8 sufixo DNS para TCP / IP (Apenas se for necessário)
1,9 Tracker Desative o Shutdown Event
1,10 Reboot
Fase 2
2,1 Instalar ferramentas de suporte
2.2 Instalar Tools Resource Kit
2.3 Instalar KB908521 (Não é necessário se w2k3 SP2)
Instale 2,4 SNMP
Instale 2,5 SNMP Informante
2,6 Configure o Windows Time
2,7 Reboot
Fase 3
3,1 R2 Install (Só se você quiser)
3,2 Reboot
Fase 4
4.1 Configuração de Atualizações Automáticas
4,2 DNS Setup MS
4,3 Set TCP / IP para DNS local
4,4 Fix MSTDC
Etapa 5
5.1 Instalar IIS
Permitir 5,2 Direct Metabase Edit
5,3 Set IIS IP para ser ouvida em
Reinicie o IIS 5,4
5,5 Set Documentos Padrão
5,6 W3SVC Set Logs Params
Instale 5,7 FastCGI
5,8 Instalar o PHP 5.1 e 5.2 (modo FastCGI)
5,9 Instalar Zend Optimizer (edição de 32 bits)
Instale 5,10 Perl
Instale 5,11 Python
5,12 Configure IIS SMTP
5,13 Socket Pooling IIS SMTP Desativar
- Http://www.isaserver.org/tutorials/i ... etpooling.html
5,14 Reboot
Etapa 6
6,1 Instalar. NET Framework 2.0
6,2 Instalar. NET Framework 2.0 SP1
6,3 Instalar. NET AJAX 1.0
6,4 Instalar. NET Framework 3.5 (Certifique-se de utilizar o instalador sem SP1)
6,5 Instalar. NET Framework 3.5 SP1 (somente se estiver usando Helm 4.1)
6,6 Reboot
Passo 7
Instale 7,1 ISAPI_Rewrite
Instale 7,2 JMail.NET
Instale 7,3 W3JMail
Instale 7,4 Blocker Hotlink
7.5 instalar o IIS Password
7,6 Instalar Winrar
Instale 7,7 persiste ASP Email
Instale 7,8 persiste ASP JPeg
Instale 7,9 persiste ASP Upload
7,10 Reboot
Naturalmente, se a caixa não vai ser um servidor DNS que você não iria instalar MSDNS, instruções se aplicam a ambas 32bit e 64bit w2k3. Não vou explicar cada passo em detalhes a informação é apenas para que você possa ver o fim que fazemos as coisas. Foi muito bem testado e não tivemos quaisquer problemas
A cada passo que testar tudo assim que nós vamos instalar certifique-se PHP está funcionando corretamente antes de prosseguir para a próxima etapa. Se você precisa instalar o MySQL ou MSSQL eu faria isso no Passo 8. Uma vez que tudo está configurado você instalar Helm como um controle remoto ou controle.
Como mostrar apenas o tempo o valor em getdate ()
Arquivado em: Programação 101 , SQL Server
Eu estava ocupada brincando e hoje fiz o seguinte eu acho que algumas pessoas vão gostar quando eu só queria comparar a hora do dia e não a data:
1 2 3 4 | ( DAY , - DATEDIFF ( DAY , 0 , GETDATE ( ) ) , GETDATE ( ) ) > '15:30:00.000' BEGIN PRINT 'yay' END IF DATEADD (DAY - DATEDIFF (DAY, 0, GETDATE ()), GETDATE ())> '15: 30:00.000 'BEGIN PRINT' yay 'END |
Padrões de Data - O que todo programador deveria saber
Arquivado em: Classic ASP , Programação 101 , SQL Server
Há alguns anos atrás quando eu comecei a programar minha primeira tarefa foi a de código de um sistema de intranet capaz de acompanhar as reuniões e alguns funcionários fizeram tarefas ao longo do dia, com base em um calendário. Isso foi antes de eu saber que o poder do SQL Server 2000 (e agora 2005/2008) tinha e como era fácil trabalhar dentro desses sistemas.
MS Access (que mudou muito desde 1999) tinha uma falha. Ele sempre manteve os formatos de data em dd / mm / aaaa (América é o "mundo" hahahahaha), para isso fez o meu trabalho cada vez mais difícil tentar lidar com as datas em um momento Sul Africano base (dd / mm / aaaa)
Lutei muito para entender o ato desavergonhado de que o MS Access massacrado insumos minha data, mas eu não podia ajudar, mas acho que isso não pode acontecer a todos os programadores!
Depois de muita dor no coração e muitas noites sem dormir, finalmente encontrei a bala de prata para o lobisomem que foi o MS Access (e outros servidores em todo o mundo rodando em configurações de fuso horário diferente)
aaaa-dd-MMM! Traduzido em: 01-Jan-1999, por exemplo, você pode inserir qualquer data, com 100% de garantia que seu sono garantido. Este formato de data universal irá trabalhar em qualquer (sim, você leu! Qualquer banco de dados) conhecidos pelo homem e, embora os dados em bruto pode ser parecido 1999/09/02 na base de dados, ele sempre irá inserir a data correta no formato correto na o banco de dados, independentemente do fuso horário que o servidor está configurado em!
exampes Classic ASP de leitura fora da data é a seguinte:
1
| date ( ) ) & amp ; "-" & amp ; Left ( MonthName ( Month ( Date ( ) ) ) , 3 ) & amp ; "-" & amp ; Year ( Date ( ) ) Day (Date ()) & amp; "-" & amp; Esquerda (MonthName (Month (Date ())), 3) & amp; "-" & amp; Year (Date ()) |
SQL Server exemplo usaria DateName em vez de MonthName (que pode ser abreviado sem a esquerda () função que eu tinha para usar em ASP) e, claro, (data) = getdate () no SQL Server ![]()
Eu sempre recomendo a leitura para fora do banco de dados (quando possível) com procedimentos armazenados no formato correto para começar. Mas cabe a você decidir como usar essa jóia do conhecimento que eu apenas jogado em você. E se você estiver lendo este pensamento "Mas eu já sabia disso!", Então pense novamente. Infelizmente, em 2009, ainda há muito alguns programadores incapazes de compreender conceitos simples, como fusos horários e manipulação de data.
Lembre-se de crianças. Cometer erros quando você ainda está de novo no jogo é uma coisa. Brandindo um currículo experiência (currículo), de 3 anos + e ainda está fazendo estes erros é simplesmente errado ... você escolheu um campo onde você tem que evoluir e procurar respostas constantemente, não estagnar ... Vou assombrar seus sonhos se você fizer ![]()













































