je le T-SQL suivante pour afficher toutes les autorisations accordées aux directeurs d'école sur mon serveur SQL 2005:Comment Révoquer l'autorisation SELECT pour system_views au public
select dp.NAME AS principal_name, --1
dp.type_desc AS principal_type_desc, --2
o.NAME AS object_name, --3
p.permission_name, --4
p.state_desc AS permission_state_desc --5
from sys.database_permissions p
left OUTER JOIN sys.all_objects o
on p.major_id = o.OBJECT_ID
inner JOIN sys.database_principals dp
on p.grantee_principal_id = dp.principal_id
order by principal_name, object_name
Le résultat affiche public SELECT accordée:
1 2 3 4 5
...
public DATABASE_ROLE system_views SELECT GRANT
....
Je pense que object_name system_views est pour toutes les vues dans mon dossier Views | system_views de la base de données. J'ai essayé le T-SQL (juste pour voir si cela fonctionne GRANT à nouveau) suivant:
GRANT SELECT ON system_views TO public
Je suis erreur « Impossible de trouver l'objet « system_views », parce qu'il n'existe pas ou que vous n'êtes pas autorisé ". Je connecte le serveur SQL en tant que sa.
Ma question est de savoir comment révoquer l'autorisation SELECT sur system_views pour public (utilisateur ou principal?) Et de rejeter l'autorisation si nécessaire. La deuxième question est si la révocation sur system_views pour public a un effet secondaire pour les autres utilisateurs?