Usuário com melhor resposta
ALTER DATABASE NAME SET OFFLINE

Pergunta
-
Caros,
Se um dbo altera a base para offline, ele perde a conexão e não consegue fazer o "bring online", apenas um usuário com permissão na master consegue torna-la online novamente.
Gostaria de saber se há como negar a permissão do usuário tornar a base offline.É possível?
O problema que estou pensando na solução é como esse aqui:
http://stackoverflow.com/questions/12200907/amazon-rds-sql-server-bring-database-online
Gostaria de oferecer a solução como da amazon mas também a opção de dar um deny pra ele não deixar o banco offline.
Desde já agradeço a ajuda,
Respostas
-
Possivel, é sim, voce precisa negar a permissão de alter database ao seu usuario, conforme exempo abaixo, porem se ele for db_owner ou sysadmin acredito que não terá efeito, ex:
use [sua base] go Deny alter to [usuario]
Alexandre Matayosi Conde Mauricio.
- Sugerido como Resposta Junior Galvão - MVPMVP quinta-feira, 18 de fevereiro de 2016 18:05
- Marcado como Resposta Marcos SJ sexta-feira, 19 de fevereiro de 2016 11:33
Todas as Respostas
-
Possivel, é sim, voce precisa negar a permissão de alter database ao seu usuario, conforme exempo abaixo, porem se ele for db_owner ou sysadmin acredito que não terá efeito, ex:
use [sua base] go Deny alter to [usuario]
Alexandre Matayosi Conde Mauricio.
- Sugerido como Resposta Junior Galvão - MVPMVP quinta-feira, 18 de fevereiro de 2016 18:05
- Marcado como Resposta Marcos SJ sexta-feira, 19 de fevereiro de 2016 11:33
-
Jardel,
Se o usuário for sysadmin não terá nenhum efeito esta alteração, como também, e o mesmo for db_owner.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
-
Obrigado pela resposta Alexandre.
Testei o deny alter, mas aí o usuário passou a não poder mais criar tabelas nem nada, visto que é um DB_OWNER, apesar de que a opção de colocar o banco offline ele também não conseguir.
Creio que não seja essa a solução por causa das criações de tabelas que o user tem q fazer, etc.. ele é um DB_OWNER.
Parece que o melhor será criar uma proc para colocar o banco offline via usuário com grant de sysadmin então.Se conhecerem outra saída me avisem por favor.
Abraços -
Com o grant:
USE master
GO
GRANT ALTER ANY DATABASE TO USER
GOEu consigo fazer o user colocar offline e online também, porém ele consegue conectar em outros bancos e isso não pode.
Queria que: Se puder colocar em off, depois consiga colocar em online, ou que não consiga nem um nem outro, sem afetar outros privilegios.
Será possível?