sql >> Databasteknik >  >> RDS >> Sqlserver

Hur kan jag se alla anslag för en SQL-databas?

Den givna lösningen täcker inte var behörigheten ges mot schemat eller själva databasen, som ger behörigheter mot tabellerna också. Detta kommer att ge dig de situationerna också. Du kan använda en WHERE-sats mot permission_name för att begränsa till bara 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

Dessutom skulle db_datawriter behöva kontrolleras för medlemskap eftersom det ger implicita INSERT-, UPDATE- och DELETE-rättigheter, vilket innebär att du inte kommer att se det visas i behörighets-DMV:erna eller deras derivator.



  1. Java SQL Server 2012 Kan inte öppna databasfel

  2. Teckenuppsättningskodningar och lagringsstorleksfaktorer

  3. INSERT EXEC-satsen kan inte kapslas

  4. Hur laddar man upp lång blob (bild) till mysql-databasen med java och hämtar i php?