Eu tenho uma instância do SQL Server 2012 rodando como um serviço no meu computador, e de acordo com a página do serviço ele faz logon como conta "NT Service\MSSQLSERVER". No entanto, não consigo ver esse nome de conta em nenhum outro lugar, incluindo na área "Usuários e grupos locais" na tela de gerenciamento do computador, porque, como diz o link abaixo, isso não é uma conta de usuário, é um nome de serviço, nessa caixa que A Microsoft tão útil rotulou "conta". Neste ponto, posso ver muitas pessoas confusas.
A tarefa que estou tentando realizar é restaurar arquivos usando a caixa de diálogo "Localizar arquivo de backup" do SSMS, que usa uma caixa de diálogo completamente diferente de qualquer uma das caixas de diálogo padrão de abertura de arquivos do Windows, provavelmente porque está fazendo 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 esta pergunta possa ajudar a esclarecer.
Até agora, se eu quiser restaurar um arquivo .mdf/.bak de backup que tenho em uma de minhas pastas, tenho que definir essa pasta como legível por todos ou não consigo entrar lá com o SQL Server "Localizar backup Arquivo" janela. Acho essa ideia de que você está usando uma GUI conversando com um serviço que tem contas de usuário e direitos diferentes de você, que ninguém na Microsoft se importou em deixar claro para você, muito confusa mesmo quando tenho anos de experiência com administração de sistemas windows .
Espero ter perdido algumas páginas de documentação do SQL Server que informam, depois de instalar uma nova instância do SQL Server, como você pode configurar a segurança.
Posts de fórum como este têm até funcionários da Microsoft dizendo "isso é complicado" e que "mudou de novo" no Denali. Como isso funciona agora no SQL Server 2012 e como posso adicionar permissão para ler arquivos pertencentes a usuários ao mecanismo de segurança do banco de dados SQL SID
.
Para referência, "Denali" é o SQL Server 2012. Com relação à "confusão do usuário final", não estou muito preocupado se um usuário final está confuso ou não em relação ao SSMS. A Microsoft não desenvolveu esta ferramenta para o usuário final normal, mas para o administrador de banco de dados e/ou um usuário que tinha que 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ê geralmente verá que a maioria usa instruções T-SQL para fazer backup, restaurar ou anexar um banco de dados que o usa 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 forma como as contas de serviço são tratadas não veio com ou por causa do SQL Server, foi devido à mudança no nível do sistema operacional. O Windows Server 2008 R2 colocou um pouco mais de camada de segurança em torno das 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 da conta de serviço são tratadas com o SQL Server 2012. O trecho do link está abaixo sobre as contas virtuais usadas por padrão no SQL Server 2012. Há também um link fornecido no artigo que aborda mais discussão sobre o conceito de conta de serviço com o Windows, aqui. É do Windows Server 2008 R2, mas acredito que ainda seja válido no Windows Server 2012 e provavelmente no Windows Server 2012 R2.
Para ver/acessar os arquivos em outra pasta, dê
NT SERVICE\MSSQLSERVER
permissões na pasta. Veja minha resposta postada no arquivo .bak não visível em nenhum diretório no 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!
Na verdade, se você tentar fazer uma restauração via SSMS e estiver logado via Autenticação do Windows (!), será SUA conta do Windows (e não "todos também) que precisa das permissões para isso - NÃO o Serviço SQL Server Conta. Espero que esclareça a confusão. A conta de serviço tem outras necessidades. Por exemplo, se você estava logado por meio de uma conta autenticada do 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 :)