Eu tenho uma instância do SQL Server 2012 em execução como um serviço no meu computador e, de acordo com a página de serviço, ela faz logon como conta "NT Service \ MSSQLSERVER". No entanto, não consigo ver esse nome de conta em nenhum outro lugar, inclusive na área "Usuários e grupos locais" na tela de gerenciamento do computador, porque, como um link abaixo diz, isso não é uma conta de usuário, é um nome de serviço, nessa caixa que A Microsoft rotulou tão útil "conta". Nesse ponto, vejo muitas pessoas confusas.
A tarefa que estou tentando realizar é restaurar arquivos usando a caixa de diálogo SSMS "Locate Backup File", que usa uma caixa de diálogo completamente diferente de qualquer caixa de diálogo padrão de abertura de arquivo do Windows, provavelmente porque está executando um trabalho "remoto" e operando a partir do contexto de segurança do servidor SQL, outra fonte rica de confusão do usuário final, que espero que essa pergunta possa ajudar a esclarecer.
Até o momento, se eu quiser restaurar um arquivo .mdf / .bak de backup que eu tenho em uma das minhas pastas, preciso defini-la como legível por Todos, caso contrário não consigo entrar lá com o SQL Server "Locate Backup Arquivo ". Acho que você está usando uma interface gráfica do usuário conversando com um serviço que possui contas e direitos de usuário diferentes dos seus, que ninguém na Microsoft se importou em deixar claro para você, muito confuso mesmo quando tenho anos de experiência em administração de sistemas Windows .
Espero ter perdido algumas páginas de documentação do SQL Server que informam, após a instalação de uma nova instância do SQL Server, como você pode configurar a segurança.
Postagens em fóruns como essa têm até funcionários da Microsoft dizendo "isso é complicado" e que "mudou novamente" em Denali. Como isso funciona agora no SQL Server 2012 e como posso adicionar permissão para ler arquivos pertencentes a Usuários à segurança do mecanismo do Banco de Dados SQL SID
.
fonte
Respostas:
Para referência, "Denali" é o SQL Server 2012. No que diz respeito à "confusão do usuário final", não estou preocupado com o fato de um usuário final estar confuso ou não com o SSMS. A Microsoft não desenvolveu essa ferramenta para o usuário final normal, mas para o administrador do banco de dados e / ou um usuário que precisava gerenciar um banco de dados. Portanto, haverá uma curva de aprendizado com as ferramentas fornecidas e como elas funcionam. A caixa de diálogo de arquivo tem sido assim no SSMS desde que o SSMS foi lançado com o SQL Server 2005. É por isso que você verá a maioria das instruções T-SQL para fazer backup, restaurar ou anexar um banco de dados que o utiliza desde então. .
Para configurar as permissões do sistema de arquivos com o SQL Server, você pode seguir as instruções do MSDN aqui .
A maneira como as contas de serviço são tratadas não foi fornecida ou, devido ao SQL Server, ocorreu devido à alteração no nível do sistema operacional. O Windows Server 2008 R2 coloca um pouco mais de uma camada de segurança nas contas de serviço. A vantagem que você tem é que a conta de serviço pode acessar mais facilmente os recursos em um domínio, mesmo se instalado com as configurações padrão. Este link fornece uma visão bastante detalhada de como as permissões de conta de serviço são tratadas com o SQL Server 2012. O trecho do link está abaixo nas Contas Virtuais usadas por padrão no SQL Server 2012. Há também um link fornecido no artigo que explica mais discussão sobre o conceito de conta de serviço com o Windows, aqui. É do Window Server 2008 R2, mas acredito que ainda seja válido no Window Server 2012 e provavelmente no Windows Server 2012 R2.
fonte
Para ver / acessar os arquivos em outra pasta, dê
NT SERVICE\MSSQLSERVER
permissões na pasta. Veja minha resposta publicada no arquivo .bak não visível em nenhum diretório do SSMS para capturas de tela e as etapas envolvidas. (Um pouco diferente de adicionar permissões normais de usuário / grupo a uma pasta.)Espero que ajude!
fonte
De fato, se você tentar fazer uma restauração via SSMS e estiver conectado via Autenticação do Windows (!), Será a SUA conta do Windows (e não "todo mundo também) que precisa de permissões para isso - NÃO o Serviço do SQL Server Espero que isso elimine a confusão. A conta de serviço tem outras necessidades. Por exemplo, se você efetuou login por meio de uma conta autenticada SQL - quais permissões o sistema operacional deve solicitar? - Será a conta de serviço do SQL Server neste apenas caso! Isso não mudou desde o SQL Server 7.0 e provavelmente nem antes disso :)
fonte
.bak
arquivo (que geralmente não terá se estiver no diretório de usuários, a menos que seja explicitamente concedido).