sql >> Database >  >> RDS >> Sqlserver

Hoe kan ik alle subsidies voor een SQL Database bekijken?

De gegeven oplossing dekt niet waar de toestemming wordt verleend voor het schema of de database zelf, die ook toestemmingen verlenen aan de tabellen. Hierdoor krijg je ook die situaties. Je kunt een WHERE-clausule gebruiken tegen permission_name om te beperken tot alleen 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

Ook zou db_datawriter moeten worden gecontroleerd op lidmaatschap omdat het impliciete INSERT-, UPDATE- en DELETE-rechten geeft, wat betekent dat u het niet zult zien verschijnen in de toestemmings-DMV's of hun afgeleiden.



  1. Wat is het gebruik van &operator in SQL SERVER

  2. Mysql haalt alle rijen met limiet op

  3. Tafelaccordeon met php en MySQL

  4. hoe in te voegen in tabel (col1, col2) waarden (selecteer max(id) uit table2, selecteer id uit table3); ?