Add a server permission VIEW DEFINITION to apply to a database. Maintaining it on its own would not be very fun,
and users would expect automatic update of the state,
as users are added or dropped. This can certainly get really
tricky when databases are restored or brought online. Maybe there could be a background task to handle this.
But even a difficult VIEW DEFINITION per database would be
worthwhile for security-minded DBAs, and would make it possible to extend the philosophy for other objects to extend to databases.