2010-11-19 4 views
1

Je veux déterminer si le actuellement connecté utilisateur de base de données a des autorisations pour créer une nouvelle base de données. Je veux y parvenir en utilisant SQL.SQL Server 2008: Comment déterminer l'autorisation de créer une nouvelle base de données?

J'ai essayé ceci:

WITH perms AS 
(SELECT DISTINCT permission_name AS perm 
FROM [sys].[server_permissions] 
WHERE permission_name IN 
('CONTROL SERVER', 'ALTER ANY DATABASE', 'CREATE ANY DATABASE') 
UNION 
SELECT DISTINCT permission_name 
FROM [sys].[database_permissions] 
WHERE permission_name IN 
('CREATE DATABASE', 'ALTER DATABASE') 
) 
SELECT COUNT(perm) AS Permissions FROM perms 

parce que sur la page MSDN où ces autorisations répertoriées dans la Create Database documentation. Cela ne fonctionne pas, car j'ai un utilisateur dans le rôle dbcreator, et pour son utilisateur aucune des permissions n'est listée.

J'ai donc besoin d'un fiable pour déterminer les autorisations requises en utilisant SQL. Pouvez-vous m'aider?

Répondre

1

Avez-vous essayé ceci à la place de votre requête?

select * from sys.fn_my_permissions('','') 
+0

Merci. C'est tout :) –

Questions connexes