Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

carlittos

SQL Server Permissao para apenas comando SELECT - ASP

Recommended Posts

Boa tarde Senhores,

 

 

Sou novo no forum e tenho uma dúvida que acho que vocês poderão me ajudar.

Tenho um sistema em ASP onde abro uma conexão através do ADODB.Connection.

Faço minhas consultas através do ADODB.Recordset conforme esquema abaixo:

 

Set RS = Server.CreateObject("ADODB.Recordset")

 

strSQL = "SELECT * from TABELA"

 

RS.ActiveConnection = Conn

RS.Source = strSQL

RS.CursorType = 1

RS.CursorLocation = 3

RS.LockType = 3

RS.Open()

 

Minha dúvida é, até para fins de evitar SQL injection, existe alguma forma de impedir que seja processado um comando "UPDATE, DELETE, INSERT OU EXEC" através do usuário que uso na string de conexão com o banco?

 

É isso! Aguardo a ajuda de todos!

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

carlittos

Bem vindo ao fórum!

 

Sim, existe maneiras de se fazer isso, porém acaba variando um pouco de versão para versão do SQL. Qual é a sua em questão?

É possível fazer isso a nível de tabelas, procedures, views ou qq objeto do DB.

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

carlittos

Bem vindo ao fórum!

 

Sim, existe maneiras de se fazer isso, porém acaba variando um pouco de versão para versão do SQL. Qual é a sua em questão?

É possível fazer isso a nível de tabelas, procedures, views ou qq objeto do DB.

 

Abçs

Bom dia A.Jr!

Obrigado pela eficiência na resposta!

A versão do meu BD é a 2000.

Faço um comando SELECT, seto o tipo de cursos e o tipo de bloqueio e uso os métodos AddNew, Update e Delete apenas. Dessa forma, em parte alguma do sistema uso as instruções UPDATE, DELETE ou INSERT. Daí, gostaria de bloquear a possibilidade do SGBD processar tais comandos pelo usuário que uso na string de conexão com o Banco.

 

Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carlitos, o SQL2000 foi descontinuado pela MS, então uma sugestão minha, profissional, é o estudo de migração para uma versão mais recente. Não precisa ir diretamente para o SQL2008, pode ser até o 2005.

 

Voltando ao seu problema, é possível conceder permissões por usuario. Faça assim:

Logado no MMS com um usuario sysadmin:

Botao direito em cima da Datatabase --> Permissions --> Search--> Brownse --> vai aparecer o usuario em questao, clique sobre ele --> ok --> ok

Note que na janela vai ter varias opcoes de DELETE, INSERT, UPDATE, SELECT

é só selecionar o Deny ou Grant

 

Fiz isso de cabeça, pois não tenho o SQL2000 comigo, se não achar algum item, post se possivel a imagem :)

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carlitos, o SQL2000 foi descontinuado pela MS, então uma sugestão minha, profissional, é o estudo de migração para uma versão mais recente. Não precisa ir diretamente para o SQL2008, pode ser até o 2005.

 

Voltando ao seu problema, é possível conceder permissões por usuario. Faça assim:

Logado no MMS com um usuario sysadmin:

Botao direito em cima da Datatabase --> Permissions --> Search--> Brownse --> vai aparecer o usuario em questao, clique sobre ele --> ok --> ok

Note que na janela vai ter varias opcoes de DELETE, INSERT, UPDATE, SELECT

é só selecionar o Deny ou Grant

 

Fiz isso de cabeça, pois não tenho o SQL2000 comigo, se não achar algum item, post se possivel a imagem :)

 

Abçs

 

Muito obrigado pelas dicas A.Jr!

Com relação a migração, já estou fazendo alguns testes com o SQL Server 2008 Express e até o momento, tirando o problema que devo sempre selecionar os campos primary key no momento de fazer um update, o resto está tranquilo. Vou pesquisar uma forma de desabilitar essa exigência do banco, se é que existe e vou proceder com a migração.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carlitos,

 

Não precisa necessariamente desabilitar nada no SQL2000 para efeturar a migração, porém tem que analisar os impactos em sua aplicação, principalmente com relação a functions (funções), procedures, views pois alguns comandos não funcionam no 2008.Cuidado também com o nível de compatibilidade, logins, contas de usuário, mapeamento de banco de dados e objetos!

Faça todos os testes em sua aplicação e no db.

Pode-se instalar uma instancia SQL2008 no seu servidor e fazer um teste.

 

Existe um e-book muito interessante para estudo de migração:

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=15220

 

 

Agora, ao seu problema, conseguiu fazer isso?

Voltando ao seu problema, é possível conceder permissões por usuario. Faça assim:

Logado no MMS com um usuario sysadmin:

Botao direito em cima da Datatabase --> Permissions --> Search--> Brownse --> vai aparecer o usuario em questao, clique sobre ele --> ok --> ok

Note que na janela vai ter varias opcoes de DELETE, INSERT, UPDATE, SELECT

é só selecionar o Deny ou Grant

 

Abçs e boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.