Quem pode fazer o que?


Administro um ambiente que tem +/- 120 usuários de SQL,,, e dentro de uma das bases do ambiente tem uns 70 usuários, com permissões diferentes em objetos diferentes…

Eu precisava de algum script para mapear aquelas peculiaridades de alguém ter permissão de execute em uma proc,,, e select em outra tabela,,, ou quando alguém tem deny em uma view… mais por questão de documentação e ter uma baseline quando alguém faz alguma alteração de proc apagando e criando ao invés de dar alter com isso perdendo as permissões…

ai saiu um scrip mais ou menos assim:

SELECT
prmssn.permission_name AS [Permission],
sp.type_desc,
sp.name,
grantor_principal.name AS [Grantor],
grantee_principal.name AS [Grantee]
FROM
sys.all_objects AS sp
INNER JOIN sys.database_permissions AS prmssn ON prmssn.major_id=sp.object_id AND prmssn.minor_id=0 AND prmssn.class=1
INNER JOIN sys.database_principals AS grantor_principal ON grantor_principal.principal_id = prmssn.grantor_principal_id
INNER JOIN sys.database_principals AS grantee_principal ON grantee_principal.principal_id = prmssn.grantee_principal_id
WHERE
(SCHEMA_NAME(sp.schema_id)='dbo')
ORDER BY sp.type
go

ATUALIZAÇÃO – 06/12/2011

Existe também o sp_helprotect, ele faz basicamente a mesma coisa que o script acima. Você pode colocar o objeto na frente da proc e vai ter a lista de usuários com permissão naquele objeto, ou, apenas executar a proc e ela vai trazer a lista de permissões de todos os usuários em todos os objetos.

Qual tipo de driver de conexão está sendo usado?


Recentemente um cliente me pediu ajuda para identificar um problema bem interessante.

O time de desenvolvimento dele havia instalado uma aplicação ERP em 4 servidores, desses 4 servidores apenas 1 estava apresentando lentidão e as vezes erro enquanto executava qualquer tipo de acesso ao servidor SQL. Ele comentou que já havia pedido ao time de SO reinstalar o Windows mas, mesmo depois de reinstalar não fez nenhuma diferença.

Como teste simples, criei um arquivo de 1GB vazio usando o FSUTIL:

fsutil file createnew c:\teste.txt 1073741824

Copiamos esse arquivo para os 4 servidores, em tempos diferentes e ao mesmo tempo, nos testes não notamos diferenças de tempo entre as cópias.

Continuar lendo