sql >> Databáze >  >> RDS >> Sqlserver

Jak mohu zobrazit všechny granty pro databázi SQL?

Dané řešení nepokrývá, kde je uděleno oprávnění vůči schématu nebo samotné databázi, které udělují oprávnění i vůči tabulkám. Tím získáte také tyto situace. Můžete použít klauzuli WHERE proti název_povolení k omezení pouze na 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

Také db_datawriter bude muset být zkontrolován na členství, protože poskytuje implicitní práva INSERT, UPDATE a DELETE, což znamená, že se nezobrazí v DMV oprávnění nebo jejich derivátech.



  1. mysql_fetch_array a pouze klíče pole řetězců

  2. ORA-01036:neplatný název/číslo proměnné při volání uložené funkce

  3. 7 tipů osvědčených postupů pro hromadné načítání dat PostgreSQL

  4. Existuje rozhraní .Net pro Oracle SQLPLUS?