PedroWieira Posted December 17, 2012 at 10:09 PM Report #487583 Posted December 17, 2012 at 10:09 PM Viva, Cirei uma instancia (nome: pedrowieira) no computador do cliente e meti uma password na instancia (por exemplo: 12321). Cirei uma base de dados nesta instancia (nome: utilizadores). Na minha aplicação (em vb.net) faço a autenticação à base de dados e conseguiso utilizala normalmente. Até aqui não há nada fora do normal. O problema é que o cliente abre a aplicação SQL Server Management Studio e selecciona a opção de autenticação "Windows Authentication" e faz OK e já enta a aceder à base de dados, ou seja não tenho protecção à minha base de dados. Alguem me pode ajudar a meter uma boa protecção à instancia/base de dados? Obrigado.
jsWizard Posted December 17, 2012 at 10:18 PM Report #487586 Posted December 17, 2012 at 10:18 PM Podes desactivar a autenticação via "windows authentication".. não me lembro onde.. mas procura nos setings do enterprise manager.. (acho que na instalação do SQL Server.. algures pelo meio tb pergunta que tipo de autenticações queres activar). E pronto, desactivando essa autenticação, depois só com logins SA (ou outro user) é que te consegues ligar à base de dados.
PedroWieira Posted December 18, 2012 at 03:49 PM Author Report #487702 Posted December 18, 2012 at 03:49 PM Podes desactivar a autenticação via "windows authentication".. não me lembro onde.. mas procura nos setings do enterprise manager.. (acho que na instalação do SQL Server.. algures pelo meio tb pergunta que tipo de autenticações queres activar). E pronto, desactivando essa autenticação, depois só com logins SA (ou outro user) é que te consegues ligar à base de dados. Durante a instalação eu seleccionei o tipo de autenticação e mesmo assim passou. Eu na aplicação faço a instalação via comandos, ou seja fica isto: SQLEXPRWT_x86_ENU.exe /qs /ACTION=install /FEATURES=SQL,RS,TOOLS /INSTANCENAME=""pedrowieira"" /SAPWD=""12321"" /SECURITYMODE=SQL /SQLSYSADMINACCOUNTS=""BUILTIN\ADMINISTRATORS"" /RSSVCACCOUNT=""NT AUTHORITY\NETWORK SERVICE"" /SQLSVCACCOUNT=""NT AUTHORITY\NETWORK SERVICE"" /AGTSVCACCOUNT=""NT AUTHORITY\NETWORK SERVICE"" /RSSVCSTARTUPTYPE=""Manual"" /RSINSTALLMODE=""DefaultNativeMode"" /IACCEPTSQLSERVERLICENSETERMS Sei que temos dois utilizadores na base de dados que se os remover-mos consigo fazer o que pretendo, mas via comandos sql não dá para remover esses utilizadores.
jsWizard Posted December 18, 2012 at 10:28 PM Report #487762 Posted December 18, 2012 at 10:28 PM pahh.. não te sei ajudar mais.. já não trabalho com SQL Server desde 2002 😄 mas sei que dá para fazer e é muito simples.. mas tens de procurar esses settings algures no entreprise manager. Tb deve haver por aqui no forum alguém que tenha conhecimentos de SQL Server bem mais frescos que os meus 😄
apocsantos Posted December 19, 2012 at 01:06 AM Report #487782 Posted December 19, 2012 at 01:06 AM Boa noite, Podes desactivar o "Windows Authentication" do Ms Sql Studio. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
Rechousa Posted December 19, 2012 at 01:20 AM Report #487784 Posted December 19, 2012 at 01:20 AM Olá, Não é possível desactivar a autenticação Windows. Porém, poderás conseguir contornar a situação usando um dos seguintes "truques" a) Remover o utilizador / grupo de utilizadores (no Managament Studio em Security / Logins, botao direito do rato no login a remover, delete); b) Negar a permissão de login ou fazer o disable ao login (no Management Studio, security /Logins, botao direito do rato no login a desactivar, properties, status, deny ou disable login. Terás de repetir estas operações por cada login a desativar. No SQL Server 2012 existe um conceito novo, as contained databases, em que, pelo que li, a autenticação / segurança fica guardada dentro da tua BD e não no servidor. Pode ser útil para ti, não testei esta feature ainda. Espero ter ajudado. Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
jsWizard Posted December 19, 2012 at 04:40 PM Report #487812 Posted December 19, 2012 at 04:40 PM Não é possível desactivar a autenticação Windows. como?? .. pelo menos na SQL Server 2000 era possível.. nas versões mais recentes já não é possível? estranhooo
Rechousa Posted December 19, 2012 at 06:29 PM Report #487831 Posted December 19, 2012 at 06:29 PM como?? .. pelo menos na SQL Server 2000 era possível.. nas versões mais recentes já não é possível? estranhooo E como é que fazias isso no SQL Server 2000 ? Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
PedroWieira Posted December 21, 2012 at 10:43 PM Author Report #488075 Posted December 21, 2012 at 10:43 PM Pois mas eu preciso de fazer isso via linha de comando ou comandos sql...
Rechousa Posted December 22, 2012 at 12:30 AM Report #488083 Posted December 22, 2012 at 12:30 AM Olá, Sei que temos dois utilizadores na base de dados que se os remover-mos consigo fazer o que pretendo, mas via comandos sql não dá para remover esses utilizadores. Dá para desactivar via SQL: -- Negar ligação ao SQL Server DENY CONNECT SQL TO [DOMINIO\utilizador]; -- Desactivar o Login ALTER LOGIN [DOMINIO\utilizador] DISABLE; Na vista de sistema sys.syslogins consegues visualizar os logins associados ao servidor. Se tiveres permissão de administração, deverás conseguir desactivá-los programaticamente, via SQL, mas agora cuidado com o que fazes, pois podes perder o acesso ao servidor ou este pode até mesmo nem arrancar. -- Todos os utilizadores / grupos (inclui utilizadores com autenticação windows e sql) SELECT * FROM sys.syslogins -- Todos os utilizadores / grupos (apenas com autenticação windows) SELECT * FROM sys.syslogins where isntuser + isntgroup >= 1 -- Script para desactivar todas as contas windows -- Está a "imprimir" o sql gerado para perceberes o impacto que isso vai causar (como te avisei acima, tem cuidado - testa numa máquina virtual ou algo do género, pois não consigo garantir que percas o acesso ao servidor ou até mesmo que este não arranque, já que precisa de uma conta windows configurada no serviço). -- Se quiseres executar, é só trocares os comentários do print, pelo exec DECLARE @SQL VARCHAR(MAX) = ''; SELECT @SQL = @SQL + 'DENY CONNECT SQL TO [' + name + '];ALTER LOGIN [' + name + '] DISABLE;' FROM sys.syslogins WHERE isntuser + isntgroup >= 1; PRINT @SQL; -- EXEC (@SQL); Espero ter ajudado. Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now