Depois de assumir uma função de gestão dos bancos de dados SQL Server, João decidiu levantar os logins correntes na sua instalação. Para tanto, com seu login “sa” executou o comando:
- A)select * from dba.logins
Errada: dba.logins nao é uma visao padrao do SQL Server, e o prefixo DBA é mais associado a outros bancos ou a ideias de administracao, nao a essa sintaxe.
- B)select * from information_schema.login
Errada: information_schema.login nao é uma visao valida do SQL Server; o INFORMATION_SCHEMA existe para metadados, mas nao com esse nome para logins.
- C)select * from master..logins
Errada: master..logins nao é a forma padrao de consultar logins no SQL Server, e essa referencia ao banco master nao entrega a visao correta cobrada pela banca.
- D)select * from sys.syslogins
Certa: sys.syslogins é a visao de sistema do SQL Server usada para consultar os logins da instacao.
- E)select * from system
Errada: system nao é um objeto valido para listar logins no SQL Server, sendo uma alternativa vaga e sem sintaxe util.
Gabarito: D
Em SQL Server, quando voce quer consultar metadados do proprio banco, costuma recorrer a visoes de sistema. Elas funcionam como um “mapa” interno do ambiente, mostrando objetos, usuarios, logins e outras estruturas que o administrador precisa enxergar sem ficar cavando no escuro. Aqui a ideia era simples: listar os logins existentes na instalacao. No SQL Server, a visao classica para isso é a sys.syslogins, que traz informacoes sobre os logins cadastrados no servidor. Como João estava logado com a conta sa, ele tinha permissao para executar a consulta e levantar esses logins correntes. A alternativa D esta correta porque select * from sys.syslogins consulta exatamente a visao do sistema que armazena os logins. Em provas, a FGV gosta muito dessa convivencia entre nomes “velhos” e “novos” do SQL Server, e aqui o caminho cobrado é o da visao de sistema do proprio SGBD. As demais alternativas misturam estruturas que nao correspondem a logins no SQL Server. Em resumo: para logins, pense em visao do sistema do SQL Server; para esquemas padrao de metadados, nao saia chutando qualquer information_schema da vida.