web-dev-qa-db-fra.com

Impossible d'accorder, de refuser ou de révoquer des autorisations à sa, dbo, propriétaire d'entité, schéma_information, sys ou vous-même

Je rencontre l'erreur suivante:

Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself.

quand j'essayais ces commandes

USE ASPState
GO

GRANT EXECUTE ON CreateTempTables TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON DeleteExpiredSessions TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON GetMajorVersion TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON GetHashCode TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetAppID TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItem TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItem2 TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItem3 TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItemExclusive TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItemExclusive2 TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItemExclusive3 TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetVersion TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempInsertStateItemLong TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempInsertStateItemShort TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempInsertUninitializedItem TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempReleaseStateItemExclusive TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempRemoveStateItem TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempResetTimeout TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempUpdateStateItemLong TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempUpdateStateItemLongNullShort TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempUpdateStateItemShort TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempUpdateStateItemShortNullLong TO [R2Server\AAOUser]
GO

Alors, comment savoir quel type d'autorisations mon compte R2Server\AAOUser avoir pour la base de données ASPState? et quels sont les moyens de résoudre l'erreur (afin que je puisse accorder ces autorisations à mon compte)?

8
Jack

Selon les commentaires, si vous êtes déjà le propriétaire de la base de données de cette base de données, vous n'avez pas besoin d'accorder d'autorisation pour la base de données.

Maintenant, afin de savoir quelles autorisations spécifiques vous avez, vous pouvez utiliser les requêtes suivantes:

  • trouver des autorisations sur une base de données spécifique:

    USE AdventureWorks2008R2;
    SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
    GO
    
  • trouver des autorisations sur tout le serveur:

    SELECT * FROM fn_my_permissions(NULL, 'SERVER');
    GO
    

Voir d'autres informations ici: Découvrez les connexions SQL Server et les rôles serveur associés , sur le forum MSDN.

7
Marian