Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как мога да видя всички грантове за SQL база данни?

Даденото решение не покрива къде се предоставя разрешение за схемата или самата база данни, които предоставят разрешения и за таблиците. Това ще ви даде и тези ситуации. Можете да използвате WHERE клауза срещу permission_name, за да ограничите само до 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

Освен това db_datawriter ще трябва да бъде проверен за членство, тъй като дава имплицитни права INSERT, UPDATE и DELETE, което означава, че няма да го видите да се показва в DMV на разрешенията или техните производни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да актуализирате статистиката на SQL Server за големи таблици

  2. 4 начина да получите история на работа в SQL Server

  3. MS Access извикване на SQL Server съхранена процедура

  4. Използване на Intel Optane Storage за SQL Server

  5. Пребройте, подредете desc и изберете топ 5