sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan kan jeg se alle bevillinger til en SQL-database?

Den givne løsning dækker ikke, hvor tilladelsen er givet mod skemaet eller selve databasen, som også giver tilladelser mod tabellerne. Dette vil også give dig disse situationer. Du kan bruge en WHERE-klausul mod permission_name for at begrænse til kun DELETE.

SELECT 
    class_desc 
  , CASE WHEN class = 0 THEN DB_NAME()
         WHEN class = 1 THEN OBJECT_NAME(major_id)
         WHEN class = 3 THEN SCHEMA_NAME(major_id) END [Securable]
  , USER_NAME(grantee_principal_id) [User]
  , permission_name
  , state_desc
FROM sys.database_permissions

Desuden skal db_datawriter kontrolleres for medlemskab, fordi det giver implicitte INSERT-, UPDATE- og DELETE-rettigheder, hvilket betyder, at du ikke vil se det vises i tilladelses-DMV'erne eller deres derivater.



  1. Bruger du resultatet af et udtryk (f.eks. funktionskald) i en parameterliste med lagret procedure?

  2. Hvordan designer man bedst en REST API med flere filtre?

  3. Rails schema.rb inkluderer ikke ny tilpasset Postgres-funktion

  4. Opret en SSH-tunnel til MySQL-fjernadgang