Erreur lors de la création d'un nouveau projet à partir d'un EPT personnalisé
Bonjour,
Peut-être vous est-il arrivé de rencontrer une problème lors de la création d'un nouveau projet à partir du Centre de Projet et d'un EPT personnalisé :
"There was an error in the callback."
La cause du problème est liée à une absence de permission sur un Rôle SQL associé à une procédure stockée utilisée par Project Server. En effet, sur la procédure stockée MSP_ReadLocalAndEnterpriseLookupTableInfoByUIDs, le rôle ProjectServerRole a des permissions particulières et en particulier, le droit d’exécution. Si cette permission a été supprimée ou est absente, Project Server ne peut pas créer completement le projet d'entreprise.
Il s'agit d'un problème connu que nous avons corrigé.
Voici la requête SQL qui peut vous être utile pour récupérer les informations de permissions :
select sys.schemas.name 'Schema'
, sys.objects.name Object
, sys.database_principals.name username
, sys.database_permissions.type permissions_type
, sys.database_permissions.permission_name
, sys.database_permissions.state permission_state
, sys.database_permissions.state_desc
, state_desc + ' ' + permission_name + ' on ['+ sys.schemas.name + '].[' + sys.objects.name + '] to [' + sys.database_principals.name + ']' COLLATE LATIN1_General_CI_AS
from sys.database_permissions
join sys.objects on sys.database_permissions.major_id = sys.objects.object_id
join sys.schemas on sys.objects.schema_id = sys.schemas.schema_id
join sys.database_principals on sys.database_permissions.grantee_principal_id = sys.database_principals.principal_id
WHERE sys.database_principals.name = 'ProjectServerRole'
order by 1, 2, 3, 5
Le plan d’action que je vous propose est donc le suivant :
- Sur Project Server, installer le correctif suivant : https://support.microsoft.com/fr-fr/kb/3054887
- Sur le serveur SQL, dans SQL Server Management Studio, exécuter la commande suivante sur la base de données Published de l’instance qui pose problème :GRANT EXECUTE on [dbo].[MSP_ReadLocalAndEnterpriseLookupTableInfoByUIDs] to [ProjectServerRole]
N'hésitez pas à partager votre expérience sur ce sujet.
Bonne journée,
Marc Biarnès