Versão - SQL Server 2012 SP1 CU3.
Eu tenho usado sys.dm_os_volume_stats por um tempo e estava funcionando. Recentemente, não consegui retornar nenhum resultado desse DMF em uma instância do SQL Server 2012.
por exemplo
SELECT * FROM sys.dm_os_volume_stats(1, 1);
Não tenho problemas com o mesmo código em outras instâncias do SQL Server 2012 ou do SQL Server 2008 R2. Alguém sabe o motivo por trás e corrigiu esse problema?
Após alguns testes, para que o DMF funcione, verifica-se que a conta do serviço precisa ter pelo menos acesso READ ao volume raiz de onde estão os arquivos do banco de dados, além da permissão de segurança de login do SQL Server VIEW SERVER STATE .
A permissão READ não precisa ser concedida explicitamente à conta de serviço. Pode ser concedido por meio de outros usuários/grupos,
1) Conta de serviço do SQL Server
2) Todos
3) Usuários
4) Autoridade NT\Usuários autenticados
A ideia é que a conta de serviço do SQL Server precisa de pelo menos permissão READ para o volume raiz. Eu listei o teste e os detalhes aqui .